我有一个 asmx WebService 可以完美运行,但是当我在浏览器中浏览它时会返回一个空白页面。
当我浏览到该search.asmx
文件时,我没有使用允许您调用服务的测试表单获得服务的通常 html 格式描述。我得到的只是一个完全空白的页面。(查看源代码不返回任何内容)。
这发生在 localhost (casini) 和服务器 (IIS 7.5) 上。
有没有办法可以打开它?
我的 web.config 看起来像这样:
...
<system.web>
<httpRuntime requestValidationMode="2.0" enableKernelOutputCache="false"/>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
...
我的服务看起来像这样:
...
[WebService(Namespace = "http://mydomain.edu/something")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class SearchService : System.Web.Services.WebService {
public SearchService() {
}
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public SearchResponse Search(SearchFilter filter)
{
...
更新:
当我导航到 wsdl 时search.asmx?wsdl
,出现错误:
System.InvalidOperationException:无法反映方法搜索。---> System.InvalidOperationException:出现反映“SearchResult”的错误。---> System.InvalidOperationException:反映类型“SearchResponse”时出现错误。---> System.InvalidOperationException:反映属性“属性”时出现错误。---> System.InvalidOperationException:反映类型“USpaceDataAttributes”时出现错误。---> System.NotSupportedException: 无法序列化 System.Collections.Generic.Dictionary 类型的成员 USpaceDataAttributes.attributes`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[SimpleTypeData , Entities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]],因为它实现了 IDictionary。
我很确定这就是为什么我得到一个空白页。