Atlas与URlRewrite融合问题一处

    UrlRewrite是最近使用较为广泛的技术,不少网站为了隐藏或体现更为人性化的地址,而纷纷对之抛以媚颜,同时,另一种开发模式Atlas也在Ajax浪潮中小露拳脚。我想,不少人对这两样东西都是非常喜欢的。

    在最近一次开发中,为了让用户使用简便的URL点播媒体文件,采用了HttpPage重写,该播放页面上有对媒体文件评价的功能,采用的是Atlas调用部署在另一台服务器上的WebService服务。于是问题来了,重写出来的播放页面中Form的action被改写了,但ScriptManager注册过的Service Path却仍然调用真实地址注册的内容。结果一直报出Service未定义的错误。

    在尝试用JS改变Form的Action失败后,相继尝试将Service注册写成HardCode(也就是写成固定地址),也以错误告终。

    重新审视整个调用的过程发现,Urlrewrite重写后,除了页面内的方法能正确执行外,其他一概不能正确执行,于是想到将WebService转移到页面,因为Atlas可以调用Page Method方法。随后做了如下的事情将WebMethod原封不动copy至播放页面的.cs文件中(带上[WebMethod]属性),在原来Atlas调用类似SerivceTypeName.MethodName()的地方改用PageMethods.MethodName(),重新打开页面,一切OK了。

    希望对于喜欢Atlas又遇到使用Urlrewrite的朋友在遇到相似问题时有所帮助吧。

原文地址:https://www.cnblogs.com/BeanHsiang/p/501317.html