不得不说,这让我难住了。从生产 URL (https://myhost.com/appname/myurl?param1=x¶m2=y) 调用 Web 服务 (ASP.NET) 时,一切正常。
当尝试从 Postman 的本地 IIS 服务器地址访问相同的 url (http://localhost:portnum/myurl?param1=x¶m2=y) 时,所有内容也会正确触发。
但是,当在我的 Maui 应用程序中尝试相同的 PostAsync 调用时,我遇到连接失败(并且 IIS 服务器实例上设置的调试点永远不会触发)。
我尝试过的事情:
将 localhost 更改为我的特定计算机 IP (10.0.1.151)
添加 network_security_config.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">10.0.0.2</domain>
<domain includeSubdomains="true">10.0.1.151</domain>
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
在我的 AndroidManifest.xml 文件中具有相关引用:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
<application android:allowBackup="false" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:label="MyApp" android:icon="@mipmap/myApp_app_icon"></application>
</manifest>
所有这些都成功地将我的“连接错误”更改为“连接错误(任务已取消)”,因为任务超时(没有到达 IIS 中的调试点)。
我的防火墙已设置,以便所有端口上的所有内部流量都可以不受干扰地路由(这就是为什么 Postman 可以毫无问题地连接,其他 Visual Studio 表单应用程序等也可以)。
我无法通过模拟器或物理设备连接。
我错过了什么?
(尝试通过 https 连接遇到相同的超时/任务取消问题)