因用户身份而导致的沟通问题

时间:2012-04-09 11:23:25

标签: c# asp.net-mvc web-config

我在计算机A上有一个网站,它调用了webService om machine B

(两者都托管在IIS7上,同一域下的bot)

我收到了通讯错误。

两个应用程序池都具有相同的域全局标识。

当我将两个池更改为本地标识时 - 一切正常。

web.Config A

我认为这是问题所在:

  <security mode="Message">
    <transport clientCredentialType="Windows" proxyCredentialType="None"
        realm="" />
    <message clientCredentialType="Windows" negotiateServiceCredential="true"
        algorithmSuite="Default" />

如:                                                                                                        

    </bindings>
    <client>
      <endpoint address="http://upload.webapp.qasite-services.com/UploadService.svc/soap" binding="basicHttpBinding" bindingConfiguration="soap" contract="WebAppUploadService.IUploadService" name="soap" />  
      <endpoint address="https://webservice.s4.exacttarget.com/Service.asmx"
            binding="customBinding" bindingConfiguration="SoapBinding"
            contract="ExactTargetClient.Soap" name="Soap" />
            <endpoint address="http://accounts5.qasite.com/toolbar/ClientServices/TemplateParams.asmx" 
            binding="basicHttpBinding" bindingConfiguration="GetTemplateParamSoap" 
            contract="ServiceReference.GetTemplateParamSoap" name="GetTemplateParamSoap" />
                  <!--<endpoint address="http://qa-srv07.conduit-il.com:81/CPServices/BundlatorManagerService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IBundlatorService"
contract="BundlatorManagerService.IBundlatorService" name="WSHttpBinding_IBundlatorService">
    <identity>
      <servicePrincipalName value="host/QA-SRV07.Conduit-IL.com" />
          <dns value="dev-srv07.conduit-il.com"/>
    </identity>
  </endpoint>-->
      <endpoint address="http://qa-srv07:81/CPServices/BundlatorManagerService.svc" binding="wsHttpBinding" contract="BundlatorManagerService.IBundlatorService"
              name="IBundlatorServiceClient" />
</client>

这可能吗?

这是错误:

Server Error in '/' Application.
________________________________________
Security Support Provider Interface (SSPI) authentication failed. The server may not be running in an account with identity 'host/qa-srv07'. If the server is running in a service account (Network Service for example), specify the account's ServicePrincipalName as the identity in the EndpointAddress for the server. If the server is running in a user account, specify the account's UserPrincipalName as the identity in the EndpointAddress for the server.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ComponentModel.Win32Exception: Security Support Provider Interface (SSPI) authentication failed. The server may not be running in an account with identity 'host/qa-srv07'. If the server is running in a service account (Network Service for example), specify the account's ServicePrincipalName as the identity in the EndpointAddress for the server. If the server is running in a user account, specify the account's UserPrincipalName as the identity in the EndpointAddress for the server.

Source Error: 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 

[Win32Exception (0x80004005): Security Support Provider Interface (SSPI) authentication failed. The server may not be running in an account with identity 'host/qa-srv07'. If the server is running in a service account (Network Service for example), specify the account's ServicePrincipalName as the identity in the EndpointAddress for the server. If the server is running in a user account, specify the account's UserPrincipalName as the identity in the EndpointAddress for the server.]
   System.ServiceModel.Security.WindowsSspiNegotiation.GetOutgoingBlob(Byte[] incomingBlob, IExtendedProtectionSupport extendedProtectionSupport) +5902777
   System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, SspiNegotiationTokenProviderState sspiState) +1146
   System.ServiceModel.Security.IssuanceTokenProviderBase`1.GetNextOutgoingMessage(Message incomingMessage, T negotiationState) +83
   System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout) +431

[SecurityNegotiationException: SOAP security negotiation with 'http://qa-srv07:81/CPServices/BundlatorManagerService.svc' for target 'http://qa-srv07:81/CPServices/BundlatorManagerService.svc' failed. See inner exception for more details.]
   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +10257978
   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +539
   BrandToolbar.Manager.TrackingChannels.BundlatorManagerService.IBundlatorService.GetBundleItemsBySsoId(Guid ssoId) +0
   BrandToolbar.Manager.TrackingChannels.TrackingChannelsManager.GetAllBundlesForSsoId(Guid ssoId, IList`1& bundleItems) in d:\Conduit\RnD\Server\WebSites\Writers\Dev-Accounts-4.2-TC\Accounts\Managers\TrackingChannels\BrandToolbar.Manager.TrackingChannels\TrackingChannelsManager.cs:311
   BrandToolbar.Manager.TrackingChannels.TrackingChannelsManager.GetAllToolbarsAndBundlesForSsoId(Guid ssoId) in d:\Conduit\RnD\Server\WebSites\Writers\Dev-Accounts-4.2-TC\Accounts\Managers\TrackingChannels\BrandToolbar.Manager.TrackingChannels\TrackingChannelsManager.cs:141
   BrandToolbar.Account.Controllers.DistributionTools.TrackingChannelsController.Index() in d:\Conduit\RnD\Server\WebSites\Writers\Dev-Accounts-4.2-TC\Accounts\BrandToolbar.Account\Controllers\DistributionTools\TrackingChannelsController.cs:102
   lambda_method(ExecutionScope , ControllerBase , Object[] ) +30
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +236
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +31
   System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +85
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +657347
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +288
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +658084
   System.Web.Mvc.Controller.ExecuteCore() +125
   System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +48
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
   System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +15
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +85
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +51
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +454
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +263

0 个答案:

没有答案