使用IIS Host WCF服务时候出现的地址错误的问题

用WCF编写一个服务,然后使用IIS作为宿主,这是不错的选择,但这样做很可能在真正部署的时候会遇到些小问题,描述如下。

先看本机调试的时候,是没有任何问题的,注意看图中我用红笔标注出来的访问地址。

然而,部署到真正的服务器上去之后,却发现元数据的地址显示的不是我们预想的IP地址,而是主机名。

这样如果直接使用这个元数据去生成Client来访问Web Service的话,由于主机名解释失败,而导致不能正常访问,必须得自己手工给Client指定访问地址,这样多少会令

人有些不爽,这怎么办呢?经过大量研究,我终于找到了一种解决方法,通过配置IIS来解决。

1,在服务器上输入命令“inetmgr”来打开IIS配置

2,右击“默认网站”,在弹出的菜单中选择“属性”(假设你的Web Service是放在默认网站中)

3,在“网站”标签中的“网站标识”区域中选择“高级”,如图:

4,如下图,选中“默认值”这个条目,点“编辑”

5,在“主机头值”中输入“10.186.3.21”,这是我的主机的IP地址

6,确定,确定,确定,就完成了!

且慢!你会发觉问题依旧存在,一点都没变啊,到底咋回事?我就是被这个所困,难以理解,其实,要让网站生效,还得做一件事情,那就是:

动一下你的Web.Config文件,Web Service才能重新生效!

Web.Config不需要修改任何内容,你只需要在里面打个空格,然后删掉,然后保存,你再看看吧:

小问题,找起答案来还蛮费劲的。

posted @ 2012-03-08 13:28  guogangj  阅读(439)  评论(0编辑  收藏  举报