The remote name could not be resolved:'maps.googleapis.com' 的解决办法

操作系统: Windows 2003(IIS 6.0)

程序类型: asp.net web application

Google Map调用方式: HttpWebResponse类去请求Google Map的static api,将HttpWebResponse获得的Stream保存为图片

通常情况下,这种做法不会有问题,部署到客户的服务器上后抛出异常:The remote name could not be resolved:'maps.googleapis.com', 但是Google Map Static Api在浏览器中可以看到地图, 研究后发现只要在asp.net的.cs文件中调用HttpWebResponse或WebClient类操作Google Map Static Api都会抛出上面的异常,在页面级调用Google Map Api不会有任何问题, 而且同样的代码在Windows Form程序中也没有问题。

发现问题: 只有通过域用户访问这个地址后才能看到图片,即使asp.net web appication集成了windows身份验证也会抛出上面的异常,但是Windows Form程序是可以看到地图图片的

解决办法: 写一个控制台应用程序使用同样的代码获取Google Map图片, 直接运行.exe程序可以获得地图图片

再次执出异常:程序中使用System.Diagnostics.Process调用这个控制台应用程序,但是在.exe程序中抛出同样的异常,但是手工执行.exe程序却没有问题, 而且在asp.net web application的日志记录的用户名是当前登录的域用户名子, .exe程序的日志记录的用户名是NETWORK SERVICE

最终解决办法:

1. web application不需要集成windows身份验证

2. 新建一个Application Pool并应用到这个web application上

3. 设置这个application pool的"Application pool identity"为一个域用户

    a. 鼠标右键点击这个application pool, 点击"Properties"
    b. 选择"Identity"标签 , 选择 "Configurable" 并输入域用户名和密码,“User name”的格式必须是 domain name\user name

The remote name could not be resolved:'maps.googleapis.com' 的解决办法

4. 如果是Windows 2003系统,将这个用户再加入到IIS_WPG组中.

你可能感兴趣的:(Google)