当我调用ASMX Web服务时,访问被拒绝

时间:2012-12-09 10:48:50

标签: c# web-services windows-services asmx

我创建了一个重新启动Windows服务的Web服务(.asmx)(我写的“LoggerService”的Windows服务)。当我在localhost上调用此服务时,我没有问题,它可以正常工作。

但是,当我从网络上的另一台计算机上调用此Web服务时,我收到此异常消息:

  

无法在计算机上打开LoggerServiceservice'。'   访问被拒绝

在IIS中,我获得了所有人和完全控制权限。但我的问题没有解决。如何获得所需的权限,以便我可以在我的Web服务中重新启动Windows服务?

3 个答案:

答案 0 :(得分:0)

是否在Web服务上启用了匿名身份验证?

答案 1 :(得分:0)

您需要在www文件夹

中包含crossdomain.xml和clientaccesspolicy.xml

跨域:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="*"/>
  <allow-http-request-headers-from domain="*" headers="SOAPAction" />


</cross-domain-policy>

cliientaccesspolicy.xml

<?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>

答案 2 :(得分:0)

检查应用程序池的标识。默认(网络服务)将无法访问控制服务。要对此进行测试,您可以将用户更改为完全控制主机系统的本地系统,但是在实时环境中,您应该创建仅具有所需权限的用户。