Windows Server2008上のIIS7にWebサイトを展開するのに苦労しています。同じホストでホストされているWCFサービスを呼び出そうとするまで、サイトは正常に機能します。
まったく同じWeb構成などを使用してVisualStudio20008でWebを実行すると、ワークステーションからのサービスですべてがうまく機能します。サーバーBamの仮想ディレクトリにWebを展開するとすぐに。認証エラー。また、両方がWindows2003Serverに展開されている場合もそのまま機能します。これを引き起こしているServer2008の違いは何ですか?ヘルプ!お願いします。
重要な場合、すべてのサービス操作には、ASP.netページの認証済みユーザーのActive Directoryグループメンバーシップが必要であり、次のように装飾されます:[PrincipalPermission(SecurityAction.Demand、Role = "SOAMemberShipService")]
Webサイトから次のエラーが発生します。
認証に失敗したため、セキュリティトークンの要求を満たすことができませんでした。説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。
例外の詳細:System.ServiceModel.FaultException:認証に失敗したため、セキュリティトークンの要求を満たすことができませんでした。
ソースエラー:
行919:
行920:public HSMembersService.MemberSearchResult SearchMembers(HSMembersService.MemberSearch MemberInfoToSearch){行921:return base.Channel.SearchMembers(MemberInfoToSearch); 922行目:} 923行目:}
ソースファイル:c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ csrweb \ a4d18657 \ a6d0910d \ App_WebReferences.jgx1svpr.0.cs行:921
スタックトレース:
[FaultException:認証に失敗したため、セキュリティトークンの要求を満たすことができませんでした。] System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(メッセージメッセージ、EndpointAddressターゲット)+6375432 System.ServiceModel.Security.IssuanceTokenProviderBase`1.ThrowIfFault(メッセージメッセージ、 EndpointAddressターゲット)+25 System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(メッセージincomingMessage、SspiNegotiationTokenProviderState sspiState)+173
[SecurityNegotiationException:呼び出し元はサービスによって認証されませんでした。] System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg、IMessage retMsg)+4596611 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData、Int32 type )+1713 HSMembersService.IHSMembersService.SearchMembers(MemberSearch MemberInfoToSearch)+0 HSMembersService.HSMembersServiceClient.SearchMembers(MemberSearch MemberInfoToSearch)in c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ csrweb \ a4d18657 \ App_WebReferences.jgx1svpr.0.cs:921 _default.btnSearch_Click(Object sender、EventArgs e)in e:\ CSRWeb \ default.aspx.cs:114 System.Web.UI.WebControls.Button.OnClick(EventArgs e)+131 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+140System.Web.UI。Page.RaisePostBackEvent(IPostBackEventHandler sourceControl、String eventArgument)+39 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint)+3215
ASP.net Webサイトのweb.config(関連するサービス部分):
サービスweb.config:
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint address ="" binding="wsHttpBinding" contract="HSMembersService.IHSMembersService" bindingConfiguration="wsHttpBindingConfig">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<!--<identity>
<dns value="localhost"/>
</identity>-->
</endpoint>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="wsHttpBindingConfig" >
<security mode="Message">
<message clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="HSMembersService.HSMembersServiceBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<serviceAuthorization principalPermissionMode="UseWindowsGroups" />
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="True" /><!-- Change this before deployment -->
</behavior>
</serviceBehaviors>
</behaviors>