Metadata publishing for this service is currently disabled 的解决偏方

做一个支持ajax的wcf,然而却莫名其妙出现了 Metadata publishing for this service is currently disabled ,经历各种排查,把问题简化到最小:

 

新建一个空项目、新建一个没有任何内容的支持ajax的wcf文件,然后运行

 

依然特么的 Metadata publishing for this service is currently disabled 。

 

照着错误提示的说明,修改了web.config 的 system.serviceModel  中的那两节配置(name绝对没设置错)。

 

还是特么的 

Metadata publishing for this service is currently disabled 。

 


 

在尝试了各种各样的解决方案之后(编辑Web.config、修改IIS设置、甚至都重新注册了.net 3.0),没有办法。

 

这已经不是常规办法可以解决的。 古往今来的改朝换代都离不开一个规律:乱世。  所以,就乱搞吧。


以下是乱搞步骤:

 

1 :把 system.serviceModel 节以及它下属的所有内容删除,不要犹豫,删!

2 :先放置一个傀儡: 新建一个常规的wcf文件(不要从别处复制文件进来,一定要新建),注意是常规的,也就是最普通的那种,不带ajax的,把它起名try1.svc。

这时候web.config会自动添加一些东西进去了,别去管它加了什么,现在是非常规方法,研究是没有意义的。

Metadata publishing for this service is currently disabled 的解决偏方
 

 

 

3 :最后,建立我们需要的真正的带ajax的wcf文件,同理,一定要新建。命名为real.svc。

 Metadata publishing for this service is currently disabled 的解决偏方

 

好了,这时候运行测试real.svc,一定能够正常运行了。 即使是/js也没问题了。

 

4 :事成之后,记得在web.config文件中把try1相关的东西删掉。

 

不要问我为什么,也劝你别去追究为什么, 系统错误提示首先对我们说谎, 谎言是没有必要问为什么的。

 

 

你可能感兴趣的:(disabled)