Ahr*_*zky 47 c# asp.net visual-studio-2015
我使用的是Microsoft Visual Studio 2015,我使用C#联系表单构建了一个简单的网站.当我在localhost上编译和运行时,它运行得非常好.但是,当我尝试发布它(在smarterasp.net上)时,我收到一个错误:
[Win32Exception(0x80004005):访问被拒绝]
[ExternalException(0x80004005):无法执行程序.正在执行的命令是"..\bin\roslyn\csc.exe"
我联系过smarterasp.net,他们说他们不允许.exe文件.我试图从服务器上删除带有ftp的csc.exe,但是当我这样做时,我收到错误:
找不到文件"..\bin\roslyn\csc.exe".
如何使用试图包含在我的项目中的csc.exe解决此问题,以便我可以发布我的这个网站?
Ahr*_*zky 88
经过几个小时的研究,我想出了解决方案.
自.NET 4.5版本以来,Roslyn编译是默认的编译方式.这意味着如果您使用.NET 4.5创建任何Web应用程序Web窗体或MVC,您将在项目中预先安装此Roslyn csc.exe编译.
基本上我需要的是在没有Roslyn或任何.exe文件的情况下编译和部署我的项目.
所以这里的解决方案对我有用.您可以在没有Roslyn的情况下进行部署而无需更改代码:
这将解决您的目的.基本上这不会在bin文件夹中生成任何csc.exe,vbc.exe文件.
我希望它对你也有用!
Eri*_*ris 17
如果你真的想保留roslyn codegen,你只需要在应用程序的bin文件夹上设置权限,以允许ApplicationPool用户Read&Execute.
我使用文件夹属性对话框中的资源管理器"安全"选项卡执行此操作,但您还应该能够执行以下操作:
icacls PATH_TO_SERVICE_BIN /grant "ApplicationPoolUser":(OI)(CI)RX
Run Code Online (Sandbox Code Playgroud)
k-d*_*dev 10
刚刚在VS2015中通过Web部署发布ASP.net 4.5.2 SPA时遇到了与OP相同的问题.
我发现工作的解决方案是删除Nuget包"Microsoft.CodeDom.Providers.DotNetCompilerPlatform".
或者,您可以从Web.config文件中删除system.codedom编译器配置部分,这会产生相同的影响.
| 归档时间: |
|
| 查看次数: |
25945 次 |
| 最近记录: |