0

IIS 7.5 でホストされている WCF サービス アプリがあります。MVC アプリはルート URL (例: www.myapp.com) にバインドされますが、サービスは "www.myapp.com/Services" にあります。サービス ライブラリと MVC アプリは .Net 4.0 を参照します。また、サービス アプリと mvc アプリは 2 つの別個のディレクトリに格納されます (つまり、サービス アプリは MVC アプリのサブディレクトリにはありません)。

MVC アプリは正常に読み込まれます。ただし、サービス URL を読み込むか、IIS でサービス アプリ ディレクトリを参照すると、次のエラーが発生します。

    Compiler Error Message: CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

    Source Error:



    Line 25:       <namespaces>
    Line 26:         <add namespace="System.Web.Helpers" />
    Line 27:         <add namespace="System.Web.Mvc" />
    Line 28:         <add namespace="System.Web.Mvc.Ajax" />
    Line 29:         <add namespace="System.Web.Mvc.Html" /> 


Source File: e:\myapp\Web.config    Line: 27 

サービス アセンブリ/プロジェクトは System.Web.Mvc を参照していません。

MVC アプリ web.config (サービス web.config ではなく) がサービス アプリ バイナリに対して評価されているようです。私はこれに対する救済策をあちこち探しましたが、どんな助けも大歓迎です。

最後に、このエラーはローカル IIS インスタンスでは発生しません。

4

3 に答える 3

1

これは、ASP.NET が web.config ファイルを階層の下にマージするためです。system.web次のように、MVC の web.config でセクションをラップして、セクションの継承を無効にするだけです。

 <location path="." inheritInChildApplications="false">
    <system.web>
      ........
    </system.web>
 </location>
于 2013-10-31T13:34:26.727 に答える
0

サービスを含む仮想ディレクトリ用のアプリケーションを作成する必要があります。

これは非常に簡単です。IIS 管理インターフェイスに移動し、「/Services」仮想ディレクトリを右クリックして、「アプリケーションの作成」を選択します。

于 2013-10-31T07:01:45.973 に答える
0

このようなものを WCF サービス構成ファイルに追加することで、継承された親構成設定をクリアすることができます。

  <system.web>
    <pages>
      <namespaces>
        <clear/>
      </namespaces>
    </pages>
  </system.web> 

MSDN の説明

于 2013-10-31T06:45:32.010 に答える