我遇到了与此处所述相同的问题:http://forums.asp.net/t/1023591.aspx
我在根web.config的<pages />
元素中设置了默认页面主题,除了网站的其余部分之外,它还应用于WebService .ASMX页面。我想阻止ASP.NET将主题应用于.ASMX页面。
上面讨论的答案说你可以在.NET框架的根CONFIG文件夹(C:\ Windows \ Microsoft.NET \ Framework \ VERSION \ CONFIG \ DefaultWsdlHelpGenerator.aspx)中编辑'DefaultWsdlHelpGenerator.aspx'并指定{{ 1}},但这只有在您能够访问服务器上的该文件时才有效。
我尝试在web.config中添加<%@ Page Theme="" %>
元素,该元素指向特定的.ASMX文件,但由于.ASMX页面仍然是主题,因此似乎被忽略了。
有没有办法阻止ASP.NET将应用程序主题应用于.ASMX文件,无需修改系统级“DefaultWsdlHelpGenerator.aspx”(如上所述)?
修改
我可以通过允许我的基页类型来定义应用主题来解决这个问题,但即使我的解决方法,我也想知道是否有一种“正确”的方式来覆盖ASP.NET中这种相当荒谬的行为。
答案 0 :(得分:1)
如何从web.config中删除该行并向您的基页添加一行(希望您有一行),这将设置您的默认主题。如果您仍想通过web.config进行管理,则可以为此主题值添加appSettings条目。
示例:
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
this.Theme = <Enter Your Theme Here>;
}
答案 1 :(得分:0)
如果.asmx文件不在网站的根目录中,你不能在其文件夹中放入另一个web.config并删除那里的主题吗?
答案 2 :(得分:0)
请注意,.asmx文件在任何意义上都不是“页面”。将它们放在一个文件夹中,该文件夹受一个“为所有页面”采取某些操作的指令的约束。
接受来自Zachary的建议,或来自James Gaunt的建议。
或者,更好的是,完全停止使用ASMX,然后转移到WCF。