私は自分のサイトをWindows7マシンのIISにローカルに展開しています。これは1か月間機能しています。必要なすべての機能がインストールされ、ASP.NETがアクティブ化されます。また、WCF機能をアクティブにしました。
現在、WCFサービスをホストしようとしています。Visual Studioで実行している間は、完全に機能します(SOですでに質問した他の問題を除く)。ただし、私のIISでは、次のIISエラーが発生します。
HTTP-fejl500.19-内部サーバーエラー。
:ページに関連する構成データが無効であるため、要求されたページにアクセスできません。エラーコード:0x80070005通知:BeginRequestモジュール:IIS Webコア要求されたURL:...物理パス:...ログオンユーザー:まだ決定されていませんログオン方法:まだ決定されていませんハンドラー:まだ決定されていません構成エラー:構成ファイルを読み取ることができません構成ファイル:...構成ソース:
さて、これは私のweb.configです:
<system.webServer>
<behaviors>
<endpointBehaviors>
<behavior name="ServiceAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service name="ForumOperationService">
<endpoint address="" behaviorConfiguration="ServiceAspNetAjaxBehavior"
binding="webHttpBinding" contract="IForumOperationService" />
</service>
</services>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/>
<add name="AjaxToolkit" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
そして、これは私のWCFWebサービステストです。
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ForumOperationService : IForumOperationService
{
public string Horse(string prefixText, int count)
{
return "hestWCF";
}
public List<SystemTagDTO> GetTags(string prefixText, int count)
{
var dfasd = new List<SystemTagDTO>();
dfasd.Add(new SystemTagDTO() { Isvisible = true, Value = "Aktant" });
dfasd.Add(new SystemTagDTO() { Isvisible = true, Value = "Beretter" });
return dfasd;
}
}
ビヘイビアー/サービス+ハンドラーエントリを削除すると、エラーが削除されたことがわかります。
さて、私の質問は、ローカルIISではなくVS2012で機能するのはなぜですか。どういうわけか、IISで直接ホストされるようにWCFサービスを設定する必要がありますか?もしそうなら、どのように?