ASP.NET - 禁用WebService主题

时间:2010-11-09 22:19:56

标签: asp.net themes asmx

我遇到了与此处所述相同的问题: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中这种相当荒谬的行为。

3 个答案:

答案 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。

相关问题