Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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# 当URL需要重写时,Windows Server Core返回404错误。我能解决这个问题吗?_C#_Powershell_Windows Server 2016_Windows Server 2019_Server Core - Fatal编程技术网

C# 当URL需要重写时,Windows Server Core返回404错误。我能解决这个问题吗?

C# 当URL需要重写时,Windows Server Core返回404错误。我能解决这个问题吗?,c#,powershell,windows-server-2016,windows-server-2019,server-core,C#,Powershell,Windows Server 2016,Windows Server 2019,Server Core,我有一些C#代码,它是一个使用HttpClient的API客户端,您可以通过二进制PowerShell模块中的cmdlet访问它。虽然这是一个代码网站,但我认为在这里显示它并不重要,因为它在Windows桌面和Windows Server的完整桌面版本上运行良好。但是,当我运行需要任何URL重写的命令时,例如“/”到“%2F”,我收到一个404错误-在Windows Server Core上找不到URL。当然,代码做得很好,我在Post调用之前将其打印到屏幕上,以证明它与我在Windows 10

我有一些C#代码,它是一个使用HttpClient的API客户端,您可以通过二进制PowerShell模块中的cmdlet访问它。虽然这是一个代码网站,但我认为在这里显示它并不重要,因为它在Windows桌面和Windows Server的完整桌面版本上运行良好。但是,当我运行需要任何URL重写的命令时,例如“/”到“%2F”,我收到一个404错误-在Windows Server Core上找不到URL。当然,代码做得很好,我在Post调用之前将其打印到屏幕上,以证明它与我在Windows 10、Windows 2016(完整版)、API explorer和Postman中看到的相同。在WindowsServerCore上,在这一点之后似乎发生了一些事情,破坏了url

为了证明这不仅仅是我代码中的奇怪之处,我在PowerShell中尝试了使用旧WebClient的示例,并调用RestMethod(包括-useBasicPassing开关),然后在Windows Server Core 2016和2019上尝试了这两种方法。每次在Windows Server核心服务器上都出现相同的问题-
未找到请求的URL

我唯一能想到的是,像InternetExplorer这样的应用程序的缺乏可能与此有关。在其他文章中,有人建议Invoke rest方法中的
-UseBasicParsing
开关可以解释这一点,但它在这里不起作用

有没有人经历过类似的事情?除了从Windows Server的完整桌面版本运行任务之外,我还能做些什么

编辑:


我发现Server 2016的完整版本也存在此问题。2019年的新例子似乎奏效了。我可能会向API供应商记录一份记录单,以获得对不一致响应的一些支持。

如果HTTP请求相同,它们应该会导致来自目标服务器的相同HTTP响应。很明显,服务器核心上的请求和桌面上的请求有些不同。你能用Fiddler2或WireShark检查交通吗?我同意,但他们不能。导入的代码相同,只要路径不包含重写为
%2F
/
,函数就可以正常工作。我已经运行了netsh跟踪并尝试了三次呼叫,但看不到任何重要信息。