用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不需要修改任何内容,你只需要在里面打个空格,然后删掉,然后保存,你再看看吧:
小问题,找起答案来还蛮费劲的。