WCF客户端和Windows集成身份验证

时间:2010-07-31 01:23:32

标签: wcf

我们在IIS 7(Windows 2008)中托管的ASP.Net MVC项目中访问Web服务时发现问题,我们正在使用此bindings.config

<basicHttpBinding>
        <binding name="BasicServiceHttpBinding">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows"/>
          </security>
        </binding>
</basicHttpBinding>

当我们从VS2008测试整个应用程序时,一切正常,但是当我们使用安装程序安装整个项目并将其托管在IIS下时,我们的项目无法访问Web服务。

我想不同的是谁拥有这个过程,在VS2008下运行应用程序时,theower是当前的登录用户(域帐户),但是在IIS下托管应用程序时,用户是不同的(可能是./Administrator或IIS_USER而不是我的域帐户。)

我们在将一个控制台应用程序作为服务运行之前遇到过类似的问题,我们只需将服务所有者更改为域帐户而不是本地系统帐户来修复它。

我想知道我们可以在IIS中执行类似于项目的操作吗?我的意思是改变流程所有者?

在这种情况下访问服务器API的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

是的,这很可能是帐户权限问题。如果您在一台服务器上安装ASP.NET应用程序而在另一台服务器上安装Web服务,并且您没有更改ASP.NET应用程序的默认AppPool标识,则通常会发生这种情况。

如果您需要更改用于运行ASP.NET MVC应用程序的帐户,则必须打开IIS管理控制台并查找正在运行您的应用程序的AppPool。您可以更改该AppPool的帐户。请注意,更多应用程序可以共享单个AppPool,因此您可以在更改帐户时影响其行为。如果发生这种情况,您可以创建新的应用程序池并将其分配给您的应用程序。

祝你好运, 拉吉斯拉夫