C# 从IIS运行进程
我有一个C# 从IIS运行进程,c#,wcf,iis,C#,Wcf,Iis,我有一个WCF服务托管在iis7.5上。除了需要启动批处理文件的部分之外,该服务运行良好。用于此操作的服务中的代码为: try { Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.FileName = @"\\MyDomain\asp\Masof\Ap
WCF
服务托管在iis7.5
上。除了需要启动批处理文件的部分之外,该服务运行良好。用于此操作的服务中的代码为:
try
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = @"\\MyDomain\asp\Masof\App_Data\mish.bat";
p.Start();
p.WaitForExit();
return 1;
}
catch (Exception ex)
{
return 0;
}
上述代码始终返回1,但批处理文件从未运行(它应该在服务器上执行文本文件操作)。我试着:
-删除
UseShellExecute
-将以下内容添加到
web.config
文件中:
<authentication mode="Forms" />
<identity impersonate="true" userName="administrator" password="1234" />
-编辑针对特定用户(具有管理员权限)的web应用程序的匿名身份验证但是,上述措施均无效。
另外,有没有办法检查这是否是权限问题?我尝试搜索事件查看器,但结果为空。
编辑:不知道是否有帮助,但当尝试从服务器运行进程(开始=>run…)时,我收到一个
在运行前无法验证发布者的警告。是否查看了链接到应用程序池的用户配置文件?你能分享你运行应用的池和帐户吗?此帐户是否有足够的权限执行?代码似乎正确这对您有帮助吗?@Edward感谢您的回复,但它没有帮助。另一方面,进程
实现了IDisposable
,用最简单的术语来说,这意味着您应该将其创建和使用包装在using
块中。应用程序池是ASP.NET V4.0。我如何知道哪个用户配置文件链接到它?啊哈。。我为你找到了一个可能对你有帮助的页面。池在哪个用户下运行?还要检查用户的权限。当导航到您建议的页面时,我会收到一条“页面未找到”消息。。。