我的应用程序需要向localhost发送POST请求。它从我的硬盘驱动器运行时有效,但是当我从共享驱动器运行它时,我得到了这个:
**************例外文字**************
System.Configuration.ConfigurationErrorsException:创建“system.net/defaultProxy”配置部分中指定的Web代理时出错。 ---> System.Net.Sockets.SocketException:提供了无效的参数
代码的相关部分在这里:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<system.net>
<defaultProxy enabled="false" useDefaultCredentials="false">
</defaultProxy>
</system.net>
</configuration>
我不确定我是否理解正确发生的事情。是否localhost被解释为文件服务器的地址?这是某种安全/权限问题吗? (我可以完全访问共享文件夹,但我没有任何文件服务器访问权限。)
不太重要的是,我怎样才能让它发挥作用?将localhost更改为实际主机名不起作用,因为请求被拒绝 - 在这种情况下,防火墙似乎阻止了请求。
The question linked in the comment类似但我已经知道它可以在硬盘驱动器上工作,并且不能在共享驱动器上运行。这个问题的提问者似乎对被接受的答案中的被告知感到满意。我不是。 The answer from Manoj似乎提供了一个解决方案,但不幸的是我在我的案例中没有做任何事情。我的app.config文件当前看起来像这样,在我重新编译解决方案后没有任何改变:
{{1}}
之前我没有使用过app.config文件,我只是意识到我需要将app.config文件放在与.exe文件相同的共享文件夹中。现在我明白了:
System.Net.WebException:底层连接已关闭:无法连接到远程服务器。 ---&GT; System.Net.Sockets.SocketException:提供了无效的参数