1

一連のサイトをホストしているIIS6を備えたWinSrv2k3ボックスがあり、そのうちの1つはVB/.NET2サイトです。この中に仮想ディレクトリを作成し、それを非常に単純なC#/。NET3.5サイトのディレクトリにポイントしました。このサイトでページを通常のサイトとして表示できると期待していましたが(仮想ディレクトリにはASMXが1つしかない)、ブラウザーからページにアクセスすると、次のようになります。

Server Error in '/TestVbSite' Application.

Configuration Error

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Could not load file or assembly 'IMSControls' or one of its dependencies. The system cannot find the file specified. (D:\sites\TestVbSite\web.config line 211)

Source Error: 


Line 209:    </httpHandlers>
Line 210:    <httpModules>
Line 211:      <add name="UrlRewritingModule" type="IMS.Controls.HttpModules.UrlRewritingModule, IMSControls" />
Line 212:    </httpModules>
Line 213:  </system.web>

Source File: D:\sites\TestVbSite\web.config    Line: 211

そこで見られる問題は、例外をスローするweb.configが、仮想ディレクトリのweb.configではなく、親Webサイトの.configであるように見えることです。しかし、その理由はわかりません。

Webサイト内(仮想ディレクトリの下ではない)の通常のページにアクセスすると、通常どおりにレンダリングおよび実行され、IMSControls DLLが仮想ディレクトリからロードできないことを示しますが、これが関与する理由もわかりません。プロセス。

4

1 に答える 1

0

さて、いくつかの誤った開始の後、重いグーグルは私に探すべき正しいものを与えました:web.config継承。

基本的に、仮想ディレクトリがその親サイトのweb.configの属性を継承しないようにするには(したがって、仮想ディレクトリからの問題)、親サイトのweb.configは、その<system.web>要素を新しい(私にとって)タグでラップする必要があります。

<location path="." inheritInChildApplications="false">
  <system.web>
    ...
  </system.web>
</location>

便利なリンク:

http://forums.asp.net/t/1164283.aspx

http://dotnetslackers.com/Security/re-55457_Stopping_ASP_NET_web_config_inheritance.aspx

http://msdn.microsoft.com/en-us/library/ms178685.aspx

于 2010-07-21T07:56:45.360 に答える