2010-11-09 20 views
1

我遇到了同樣的問題禁用主題:http://forums.asp.net/t/1023591.aspxASP.NET - 這裏描述爲WebService的

我有一個默認的頁面主題的根web.config的<pages />元素,設置哪些,除了網站的其餘部分,正在被應用到WebService .ASMX頁面。我想阻止ASP.NET將主題應用於.ASMX頁面。

在上述討論的回答說,你可以在.NET Framework的根config文件夾中編輯 'DefaultWsdlHelpGenerator.aspx'(C:\ WINDOWS \ Microsoft.NET \框架\ VERSION \ CONFIG \ DefaultWsdlHelpGenerator.aspx),並指定<%@ Page Theme="" %> ,但這隻有在您能夠訪問服務器上的該文件時纔有效。

我已經嘗試在web.config中添加一個<location />元素,該元素指向特定的.ASMX文件,但似乎被忽略,因爲.ASMX頁面仍然是主題。

有什麼辦法可以防止ASP.NET將應用程序主題應用於.ASMX文件,這些文件不需要修改系統級別的DefaultWsdlHelpGenerator.aspx(上面提到過)?

編輯

我能夠通過讓我的基地頁類型來定義應用的主題來解決這個問題,但甚至不顧我的解決辦法,我想知道是否有一個「正確」的方法來覆蓋這在ASP.NET中相當可笑的行爲。

回答

0

如果.asmx文件不在網站的根目錄下,你不能只在其文件夾中放入另一個web.config並刪除主題?

+0

從理論上講,這是行得通的,是的。但是,在這個應用程序中,.ASMX文件位於根目錄中。我正在尋找一種排除更改任何文件的物理位置的解決方案。 – 2010-11-09 22:34:41

1

如何從web.config中刪除行並向您的基頁添加一行(希望您擁有一行),該行設置您的默認主題。如果您仍想通過web.config進行管理,則可以爲此主題值添加appSettings條目。

例子:

protected override void OnPreInit(EventArgs e) 
    { 
     base.OnPreInit(e); 
     this.Theme = <Enter Your Theme Here>; 
    } 
+0

事實上,這是我正在使用的解決方案,但我覺得ASP.NET會以這種方式行事,因爲我們不希望將其應用程序特定樣式應用於生成的非模板頁面模板。 – 2010-11-10 03:23:49

0

注意的.asmx文件不在任何意義上的 「頁面」。將它們放在一個文件夾中,這個文件夾需要採取一些「針對所有頁面」的操作。

要麼從ZacharyJames Gaunt的建議。

或者,更好的是,停止使用ASMX,並轉移到WCF。

+0

儘管.asmx文件不是頁面,但它是首先導致行爲的根級別的元素。我原以爲至少我可以用''覆蓋它。 – 2010-11-10 03:31:45