asp.net与Discuz-UCenter整合(1):应用通信
1.添加应用
![](https://pic002.cnblogs.com/images/2010/71254/2010122015305624.gif)
![](https://pic002.cnblogs.com/images/2010/71254/2010122015384785.gif)
![](https://pic002.cnblogs.com/images/2010/71254/2010122015392852.gif)
![](https://pic002.cnblogs.com/images/2010/71254/2010122015353977.gif)
提交之后会在应用列表中看到我们要通信的"整合测试"
![](https://pic002.cnblogs.com/images/2010/71254/2010122015382148.gif)
2.通信原理
UCenter对我们添加的应用通信时候请求应用接口文件,接口文件如果发生Http错误或者输出"-1"则通信失败;
接口文件输出"1"则通信成功!
3.实现通信
注:UCenter默认应用接口文件位于应用的"/API/"目录下
添加ucapi.ashx并输出"1"
实例代码(c#):
public class UCApi:IHttpHandler { bool IHttpHandler.IsReusable { get { throw new NotImplementedException(); } } void IHttpHandler.ProcessRequest(HttpContext context) { context.Response.Write("1"); } }
刷新UCenter的应用列表,查看我们的应用已经通信成功!
![](https://pic002.cnblogs.com/images/2010/71254/2010122015473698.gif)
4.应用接口文件
页面:"discuz.axd?link,test",输出"-1"
1.如果我们将discuz.axd?link,test直接填写到应用接口文件中,很抱歉会提示通信失败!
2.我们可以为URI加上#.ashx,如图:
![](https://pic002.cnblogs.com/images/2010/71254/2010122016490622.gif)
实际上访问的还是"discuz.axd?link,test",但却可以通信成功!
利用上面的技巧我们可以无需创建一个单独的测试通信的页面,同时建议使用.axd来代替.ashx
axd只需要Web.Config添加一个HttpHandler节点!
无论是访问"/api/discuz.axd?link,test" 或是"/{任意值}.../discuz.axd?link,test"输出的内容都是一样的。
原创内容请您保留出处及地址 , 主页:展益