我有两个在它们之间进行通信的 Web 应用程序。我已经在 Cassini 服务器上测试了这两个应用程序,它们都可以正常工作。
然后,我将这两个应用程序都部署为 IIS 上的 SSL。其中一个应用程序完美运行。另一个应用程序也有效。但是,在某一时刻,此应用程序向另一个应用程序发出 Web 服务请求,后者将 URL 返回给请求应用程序。然后,请求应用程序将用户重定向到该 URL。
不幸的是,重定向在它仍然“连接”但没有加载的意义上不起作用。造成这种情况的根本原因是什么?是因为他们没有有效的证书吗?其他人是否遇到过这个问题?我该如何解决?
这就是我从 Web 服务传递 JObject 中的 URL 的方式:
obj["URL"] = "https://localhost:2001/CheckOut.aspx?GUID=" + guid;
这就是我在“客户端”(发出请求的应用程序)加载 URL 的方式:
string script_value = "window.open('CheckOutConfirmation.aspx', '_newtab');";
script_value += "window.location.href = '" + response_object.URL + "';";
Page.ClientScript.RegisterStartupScript(Page.GetType(), null, script_value, true);
我想澄清一下,这段代码在不在 IIS 上时可以正常工作。当我将它部署到 IIS 时,我更改了 URL 以反映新的地址和端口。我通过将 URL 粘贴到项目的地址栏中来确保 URL 正常工作。此外,当地址栏显示时,正在调用 Web 服务"localhost:2001/CheckOut.aspx?GUID=etc etc etc"
。但是,它会保持“连接”状态,直到发生超时。
更新
如果我在 URL 中显示的地址之前添加 https://,它就可以工作。为什么请求应用程序将地址加载为“localhost:2001/CheckOut.aspx?GUID=etc etc etc”,而实际上我通过了“https://localhost:2001/CheckOut.aspx?GUID=" + guid;?