MSBuild在VS2015自带的IISExpress中可正常编译,但是单独发布到IIS里面就便宜失败!

hk8846 2019-07-24 10:58:51
各位大佬,有个问题想请教下,搞了几天了:
我们要做一个通过页面上点击按钮,自动编译一个指定项目,我现在是可以在我本机开发环境运行该页面,点击该页面上的按钮,可以正常编译,编译代码是通过Microsoft.Build实现的,但是单独将这个项目发布部署到我本机上的IIS,一直都显示编译不通过,又没有报错,只返回编译False。(编译成功是返回True),请指教!!!!(该给的权限都给了)
代码如下:
ConsoleLogger log = new ConsoleLogger(LoggerVerbosity.Normal);
BuildManager manager = BuildManager.DefaultBuildManager;

ProjectInstance projectInstance = new ProjectInstance(@"D:\ClassLibraryBuildProject\ClassLibraryBuildProject.csproj");
var result = manager.Build(
new BuildParameters() {
DetailedSummary = true,
Loggers = new List<ILogger>() { log }
},
new BuildRequestData(projectInstance, new string[] { "Build" }));
var buildResult = result.ResultsByTarget["Build"];
var buildResultItems = buildResult.Items;
...全文
105 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
吾友客 2019-07-25
  • 打赏
  • 举报
回复
1、检查一下IIS路径和Microsoft.Build中编译的路径是否一致 2、部署IIS需要把相关的Bin文件一起Xcopy过去
hk8846 2019-07-25
  • 打赏
  • 举报
回复
问题解决了,问题导致的原因:在IIS中添加应用程序池之后,默认的执行账号(就是“标识”)那里是“ApplicationPoolIdentity”,这个账号权限比较低,我更改为“LocalSystem”后即可正常编译通过,后来查询了下资料,是因为LocalSystem的权限比较高。所以这个问题最终是权限问题导致的。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧