使用 C#/.NET Google+ 登录快速启动项目,我遇到了 IIS6 的问题。以下是我遵循的步骤:
- 从 Github 下载项目
- 修改了 index.html 和 signin.ashx 文件以包含我的客户端 ID 和客户端密码
- 在我的机器上运行项目(使用 Visual Studio 2010 的内置 Web 服务器)工作正常
- 使用 IIS6 发布到 Windows 2003 服务器
- 添加“index.html”作为网站的默认文档
- 将网站设置为使用为 4.0 .NET 框架配置的应用程序池
- 试图从 Chrome 访问该页面
在 URL ( https://myserver.com/gplussample/ ) 上未指定页面的情况下访问该站点会显示 Google+ 登录按钮。这很好用,我被带到带有我的个人资料照片、圈子等的页面。
但是,当我单击“断开连接”按钮时,什么也没有发生。使用 Chrome DevTools 检查该过程,我看到此错误:
POST https://myserver.com/gplussample//disconnect 404 (Not Found)
问题是//disconnect
- 没有页面名称(我相信它应该是 signin.ashx,因为当我在使用 Visual Studio 2010 的开发 Web 服务器上运行应用程序时,这是有效的)。
然后我尝试使用指定的页面名称访问该站点:
https://myserver.com/gplussample/signin.ashx
这导致一个空白页面,再次查看 Chrome DevTools,我看到 .ashx 处理程序出现 400 Bad Request 错误。我搜索并搜索了 .ashx 处理程序和“错误请求”错误的解决方案,但在这种特殊情况下没有成功。
认为 IIS6 是罪魁祸首,我将网站发布到 IIS7 实例。
由于没有在 URL ( ) 上指定页面名称http://localhost/gplusoriginal/
,我在使用“断开连接”按钮时遇到了相同的错误 - 无操作和 404 错误。
当我将 URL 更改为 时http://localhost/gplusoriginal/signin.ashx
,我收到此错误:
Could not create type 'GPlus_ServerSideFlow.Signin'.
再次回到 Google 并检查 .ashx 处理程序和 IIS7 的问题。我找到了一篇关于 web.config 并在那里指定处理程序的帖子,所以我尝试了。
<system.webServer>
<handlers>
<add name="GPlus_ServerSideFlow.Signin" path="*.ashx" verb="*"
type="GPlus_ServerSideFlow.Signin" resourceType="Unspecified" />
</handlers>
</system.webServer>
将此代码段添加到 web.config 解决了“无法创建类型”错误,但导致另一个 400 Bad Request 错误。
所以,我的问题是:必须用 II6 或 IIS7 做什么才能让这个示例项目工作?配置 IIS 是否有其他需要完成的步骤?或者项目代码中缺少什么?
谢谢