我正在为公司的 iPhone 应用程序构建 Web 服务,通过在开发计算机上通过 localhost 运行测试,一切都运行顺利。我现在处于需要测试来自网络内其他计算机的连接的阶段,除 localhost 之外的任何连接都会给我 404。我的内部 IP、127.0.0.1 和 computername 在从任何计算机(无论是托管网站的计算机还是网络上的任何其他计算机)连接时都会得到 404。Telnet 可以访问端口 80,我暂时禁用了这台计算机上的所有防火墙(我无法控制外部防火墙,但我只测试网络内的连接)
有人知道为什么会发生这种情况吗?当托管在 Mac 上时,我能够通过 Apache 从其他计算机连接到 Web 服务,但由于我现在使用 SQL Server 连接,因此我只能使用 IIS 进行 Windows 身份验证。谷歌搜索仅提供与防火墙相关的答案,而我的防火墙已被禁用
注意:我不能使用匿名身份验证,但即使在测试中它也不会影响问题。
答案1
目前还不清楚您是在服务器上还是在桌面上运行。我假设您是在装有 Visual Studio 的桌面上运行。如果是这种情况,内置的 Visual Studio Web 服务器“Cassini”根本不接受远程连接!尝试下载 IIS Express 或在您的机器上实际启动 IIS,这些将允许远程连接。
另外,您关于由于数据库集成身份验证而从 Apache 切换到 IIS 的解释没有多大意义。为什么不直接使用支持 MSSQL 的语言的 MSSQL 驱动程序?这是 PHP 网站:http://blogs.msdn.com/b/sqlphp/
下次提供更多细节,您将获得更好的答复。
更新:根据您的澄清,我将从以下内容开始......
- 默认网站是否已打开?如果已打开,则默认绑定为 *:80,因此服务器将处理端口 80 上的所有请求。进行测试以确保在远程访问时至少获得 IIS 欢迎页面。如果已打开,则……
- 检查 IIS 站点绑定,在最简单的层面上确保您的网站/应用程序接受 *:80,因此所有流量都在端口 80 上。这将与默认网站冲突,因此请先将其关闭。
如果这不起作用,则可能是防火墙存在一些潜在问题,请仔细检查它是否确实关闭或是否打开了 HTTP 异常,然后我会查看 DNS 和/或网络问题。