编辑固定!:我觉得很傻;因此,经过几天的调查和调试,什么不是,答案是,网站设置相同,除了一个我从未想过的地方;无意中使用管理共享而不是服务器上的本地物理路径创建了实时站点上的目录。在实际站点上切换路径后,API将按照预期与其余代码一起工作。
原始问题:
我有两个网站托管在同一个应用程序池中的同一台服务器上。网站1是我的测试床。我有一个小类试图调用第三部分函数,它基本上等同于验证第三方允许的用户中是否存在给定用户。如果是,则返回true,否则返回false。如果返回为真,它将重定向到第三方,否则用户对第三方一无所知。
在我的开发网站上,我的代码100%没有错误,我得到了预期的结果。它总是在这里工作,从来没有成为问题。但是,当我将其移动到实际网站时,我得到 请求获得类型'System.Net.WebPermission,Failed 的权限。经过广泛的谷歌搜索后,我仍然感到困惑,这已经过了几天。这就是为什么我如此困惑:
也许最令人费解的部分是我在vb.net中使用母版页系统。代码实际上在master-page的page_load事件中执行。开发站点运行没有问题,但只要您尝试加载页面,代码就会抛出异常。最奇怪的部分是,如果我从主页page_load中取出代码并创建一个新的空白页,除了这个调用和调用它的page_load代码之外什么都没有,它就可以了。
我已经彻底检查过这个母版页了,我无法相信它可以在dev上工作但不能在线工作,昨天当我在实时网站上进行新页面和相同代码的实验时,我完全被吓到了。
到目前为止,我尝试解决此问题:
我很茫然。下面是代码 - 它很简单,但这个问题仍然存在。我无法弄清楚为什么它在现场网站上工作,而不是我需要它的特定页面。这是相应的代码:
Sub page_load()
If Not Page.IsPostBack Then
Dim SFUser As New StorefrontUser
'Response.Write(SFUser.GetadminticketValue)
If SFUser.isActiveStorefrontUser = 1 Then
LBCELink.Style.Add("visibility", "visible")
Else
LBCELink.Style.Add("visibility", "hidden")
End If
End If
End Sub
这是它调用的类/函数: 公共类StorefrontUser 昏暗的店面As New SXI.StorefrontAPIHelper(“http://subdomain.blah.com/3rdpartyAPI.asmx”)
Function isActiveStorefrontUser() As String
If GetAdminTicket() <> "UNAUTHORIZED ACCESS" Then
Return storefront.GetValue("UserProperty", "IsActive", storefront.FindUserID(theID))
Else
Return "1"
End If
End Function
Function GetadminticketValue() As String
Return GetAdminTicket()
End Function
Public Function GetAdminTicket() As String
Dim ScratchTicket As String = String.Empty
Try
ScratchTicket = storefront.ObtainUserTicket("user", "password", "Identity")
Catch ex As Exception
HttpContext.Current.Response.Write(ex.ToString)
ScratchTicket = String.Empty
End Try
Return ScratchTicket
End Function
End Class
如果它不是主页面的一部分,可以在Live网站上正常工作,在任何地方都可以在开发网站上正常工作。完全难倒。如果我的格式很差或者我的问题缺乏清晰度,请道歉;第一次打电话的人,长时间的倾听者。
最后一条重要的信息是,要使用他们的API需要引用第三方的dll - 这似乎是一个有效的争用点,除了它适用于我创建的空白页面,而不是这个主页面与开发站点的主页面相同。
提前感谢您可以放下任何光线。