Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ASP.NET站点部署到服务器时无法调用web服务,但可以在本地主机上运行_C#_Asp.net - Fatal编程技术网

C# 将ASP.NET站点部署到服务器时无法调用web服务,但可以在本地主机上运行

C# 将ASP.NET站点部署到服务器时无法调用web服务,但可以在本地主机上运行,c#,asp.net,C#,Asp.net,当我试图通过调用子虚拟目录中的Web服务来运行ASP.NET站点时,我得到以下错误: “请求失败,HTTP状态401:未经授权。” 这是我写的代码: Dim ws As Odyssey.SupportServices.SupportServices ws = New Odyssey.SupportServices.SupportServices ws.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials 我的虚拟目

当我试图通过调用子虚拟目录中的Web服务来运行ASP.NET站点时,我得到以下错误:

“请求失败,HTTP状态401:未经授权。”

这是我写的代码:

Dim ws As Odyssey.SupportServices.SupportServices
ws = New Odyssey.SupportServices.SupportServices
ws.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials
我的虚拟目录结构如下所示:

CSACCsupp-父级:父级可以毫无问题地调用webservice。
奥德赛-Sub:如上面的错误所示,Sub无法调用webservice

我认为问题在于IIS的安全性。因此,我检查了IIS安全性并比较了父级和子级;它们是相同的

我真的不知道下一步该怎么做,因为我已经尝试了很多方法来设置IIS的安全性,但我仍然一无所知


您能就这个问题提出建议吗?

这些应用程序是否在同一个应用程序池中运行?如果不是,它们各自使用的帐户是什么?web.config文件是否相同?可能您正在其中一个中设置模拟,而不是另一个?

签出您的文件ntfs权限,有时在复制文件时,windows会保留文件的原始权限,而不是新权限


因此,您的文件(例如web.config)可能没有必要的权限。

您应该发布您的web.config,尤其是身份验证/授权设置。它在同一个应用程序池中运行。它使用系统id,我也不知道。但问题是,当我试图从服务器调用webservice时,它没有向webservice发送系统id。然而,当我在本地主机(我的PC)中调用网站并在服务器中调用webservice时,它会将我的id发送到webservice。你能解释一下为什么不同吗。谢谢。你还没有发布web.config。如果应用程序正在向web服务发送您的ID,这意味着它正在使用模拟,或者应用程序池正在使用您的凭据运行。在服务器上以相同的方式进行设置,或者在web.config中启用模拟,或者将默认ASP.NET标识的权限添加到webservice服务器。我已检查了权限,它是相同的设置。很奇怪,我可以从父文件夹调用webservice。另一方面,我无法从子文件夹调用webservice。我已经为父文件夹和子文件夹设置了Web虚拟目录,以使用相同的应用程序池。你能帮我解决这个问题吗。提前感谢。:)