這是我當前的設置;IIS中虛擬MVC應用程序中的標頭行爲
在IIS中,我有兩個託管MVC應用程序,說App1
在app1.mydomain.com
主辦。它有一個虛擬MVC 應用程序(不是目錄)App2
託管爲app1.mydomain.com/app2
。
這兩個應用程序都有一個連接到相同的WCF服務。這個WCF服務需要在他們的請求標題,因此我已經添加了使用this每個呼叫的行爲。
我已經正確配置了應用程序的標題行爲(App1
有App1MessageHeaderInspector
和App2
具有App2MessageHeaderInspector
),並且無論是在自己的Web.config中配置。
所以,App1
使用;
<client>
<endpoint address="http://ws.mydomain.com/Service.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IWebService" contract="WCFService.IWebService"
name="BasicHttpBinding_IWebService" behaviorConfiguration="WebServiceEndpointBehaviour" />
</client>
<extensions>
<behaviorExtensions>
<add name="App1MessageHeaderInspector" type="App1.App1MessageHeaderBehaviourExtension, App1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null "/>
</behaviorExtensions>
</extensions>
<behaviors>
<endpointBehaviors>
<behavior name="WebServiceEndpointBehaviour">
<App1MessageHeaderInspector />
</behavior>
</endpointBehaviors>
</behaviors>
而且App2
使用相同的配置,不同之處在於App1MessageheaderInspector
是App2MessageHeaderInspector
。
我已經配置我的App1
路由到不顧一切去/app2
;
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*path}", new { path = @"app2\/(.*)" });
//...
}
我可以成功地不需要到WCF服務的連接查看頁面(即app1.mydomain.com/app2/Home/Index
返回正確的視圖)。
現在我的問題是,當我嘗試使用App2
連接到WCF服務,我碰到下面的錯誤;
描述:處理服務此請求所需的配置文件時發生錯誤。請查看下面的具體錯誤細節並適當修改您的配置文件。
解析器錯誤消息:未能加載類型'App1.App1MessageHeaderBehaviourExtension,App1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'的擴展名'App1MessageHeaderInspector'。
但我不想App2
加載從App1
行爲!
我也試圖封裝<system.web>
與<location inheritInChildApplications="false">
在App1
,但沒有成功。
這兩個應用程序都可以在我的本地PC上進行測試時按預期工作。沒有Windows身份驗證或類似的事情。
我很卡在這個話題現在幾天。任何幫助表示讚賞。