IIS7不会通过Process Start启动我的Exe文件

Nas*_*aer 10 .net silverlight iis-7

我读了很多文章.但据我所知,我已经完成了所有工作.在本地计算机VS2010上一切正常.只有在IIS7服务器上工作时才会出现此问题.

如果我从Windows资源管理器手动启动它,我想启动一个在服务器上运行良好的exe文件.

 Dim fiExe As New IO.FileInfo(IO.Path.Combine(diBase.FullName, "ClientBin\ConvertAudio.exe"))
    Dim SI As New ProcessStartInfo(fiExe.FullName, args)
    SI.Verb = "runas"
    SI.UseShellExecute = True
    SI.WorkingDirectory = fiExe.Directory.FullName
    Dim P As Process = Process.Start(SI)
    P.PriorityClass = ProcessPriorityClass.Idle
Run Code Online (Sandbox Code Playgroud)

ClientBin在IIS中的应用程序中转换了目录.

但是当使用该服务时,我收到此错误(Silverlight应用程序中的回调):

{System.Security.SecurityException ---> System.Security.SecurityException: Sicherheitsfehler
   bei System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
   bei System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
   bei System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__0(Object sendState)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
   bei System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   bei System.Net.WebClient.WebClientWriteStream.<Dispose>b__3(IAsyncResult ar)}
Run Code Online (Sandbox Code Playgroud)

我试图将文件"clientaccesspolicy.xml"存储在同一目录中 ClientBin

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
    <cross-domain-access>
        <policy>
            <allow-from http-request-headers="*">
                <domain uri="*"/>
            </allow-from>
            <grant-to>
                <resource path="/" include-subpaths="true"/>
            </grant-to>
        </policy>
    </cross-domain-access>
</access-policy> 
Run Code Online (Sandbox Code Playgroud)

还是一样的消息.任何的想法?

ISS7命令行配置

Windows资源管理器中的权限

*新信息 - 动词* 使用此功能时

Dim startInfo As New ProcessStartInfo(fiExe.FullName)
            Dim V As String = ""
            For Each verb As String In startInfo.Verbs
                V &= V & ", "
            Next
            Throw New Exception("Verbs=" & V)
Run Code Online (Sandbox Code Playgroud)

我收到这个结果:

动词= ,,,,,,,

*找到解决方案* 我在使用http://www.fiddler2.comhttp://technet.microsoft.com/en-us/sysinternals/bb896653时找到了解决方案 问题是在x64 IIS上使用x86应用程序时遇到的问题与verb=runas国旗组合.现在应用程序设置为anycpu(也许这无关紧要)并且verbProcessStartInfo未设置为任何内容.

Mic*_*elS 13

编辑:

经过漫长的旅程,我和Nasenbaer发现了以下情况.IIS运行EXE失败的可能原因是:

  1. 缺少IIS用户的权限,例如应用程序池用户或网络服务(在IIS6中).
  2. x86 EXE在x64机器问题上运行.
  3. 典型的EXE故障问题,例如缺少依赖性.

原始答案:

您需要IIS AppPool\DefaultAppPool在EXE所在的目录上为用户分配FullControl安全权限.这是尝试运行该进程的用户(假设您正在使用该进程DefaultAppPool),并且没有适当的权限,则无法执行此操作所以.

手动运行EXE时,您正在使用Windows登录用户.这就是为什么你可以手工午餐.IIS使用应用程序池用户.

要添加权限,请执行以下操作:

  1. 转到目录属性
  2. 安全选项卡
  3. 编辑.. - >添加 IIS AppPool\DefaultAppPool
  4. 检查一下 FullControl

截图:

在此输入图像描述 在此输入图像描述


Ark*_*ady 7

帮助我的是:在应用程序池中设置Identity = LocalSystem

  1. 打开应用程序池
  2. 找到您的池(默认情况下为DefaultAppPool)
  3. 点击"高级设置"
  4. 将身份更改为"LocalSystem"

希望它会帮助某人......