簡體   English   中英

IIS 7無法找到Microsoft.CodDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider DLL

[英]IIS 7 unable to find Microsoft.CodDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider DLL

因此,在使用自定義構建配置部署Web服務時,部署后我會收到錯誤:

無法找到CodeDom提供程序類型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,Microsoft.CodeDom.Providers.DotNetCompilerPlatform”。

在嘗試瀏覽網站時。 查看bin \\ ~configurationName~文件夾,我可以找到指定的DLL就好了。 錯誤是在我的web.config中引用這些行:

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>

奇怪的是,當在同一台服務器上構建/部署Debug時,我沒有遇到這個問題,一切似乎都運行正常(這讓我相信這個錯誤存在於我的項目配置中,而不是部署服務器)。 我正在為獲取此錯誤而構建的配置是我們自定義的QA配置,它輸出到bin \\ QA,所以我想知道是否需要做一些特殊工作才能讓ASP.NET編譯器查看特殊輸出文件夾?

長期部署解決方案暫時避免使用Roslyn。

問題是您在IIS上使用Roslyn編譯器和引用。 Roslyn仍然沒有在許多部署服務器上獲得完全支持。

解決方案是刪除Roslyn,因為這不會影響項目功能!

我給另一個與幾乎這類問題有關的問題寫了類似的答案。 看看我的回答https://stackoverflow.com/a/42668206/1436594

所以這是因為我在一個具有配置名稱的文件夾下嵌套了站點的所有程序集,就像在控制台/ windows應用程序中那樣(例如'bin \\ Debug')。 對於Web應用程序,程序集不會嵌套在config文件夾下(例如,它們應該放在'bin'中)。

希望這有助於他人!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM