相信大多数朋友都为网络应用程序的部署问题伤过脑筋,本机上运行好好的程序,换台机器就出问题,或者需要更改很多相关设置。尤其是在同时编写WebService服务端和客户端的时候,程序调试是在本机进行,所以,一些网络相关的特性不能表现出来。比如,我们测试的服务器地址和真实运行的服务器地址不同。
其实这个问题,我们只需使用系统的DNS预解析来解决
windows操作系统下有一个hosts文件,系统用它来为某个域名指定IP地址,我们可以利用它来模拟一个真实的网络程序运行环境。
用文本编辑器打开hosts文件(windows系统位于x:/windows/system32/drivers/etc/下,X为系统所在盘符,文件没有扩展名),会看到类似如下内容:
————————————————————————————
# Copyright (c) 1998 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP stack for Windows98
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
————————————————————————————
# 开头的为注释,最后一行127.0.0.1 localhost是说将localhost指定为IP127.0.0.1,也就是我们的回路IP
因此,我们可以添加我们自己的指定IP解析,比如:
127.0.0.1 www.mywebsite.com
保存。那么在浏览器中输入www.mywebsite.com,我们会打开127.0.0.1这个IP地址。
利用该文件的好处是,IIS所接收到的请求权限完全是远程状态的,而不是本机的(为了方便调试,开发工具会对本机IP开放特殊权限),所以避免了因为开发工具对于本机IP权限放宽,导致程序移植之后无法用相应权限运行的问题。
利用这个特性,你完全可以在编写WebService的时候使用真实域名地址,这样在客户端程序调试的时候使用hosts的配置,而当程序正式上线运行的时候,将hosts文件中相应的项删掉即可。客户端编译好的模块无需再次编译。