【发布时间】:2011-11-17 21:53:07
【问题描述】:
我有一个 silverlight 应用程序,并且正在使用初始化参数将 API 服务器 URL 从我的 Web 配置传递到主机页面到 App.xaml.cs
API url 包含“localhost”,然后是端口号。 但是当它以调试模式到达 App.xaml.cs 时,它会作为“::1”传入,然后是端口号。
这是为什么?除了简单地检查“::1”并将其转换回“localhost”之外还有什么方法?
编辑
这是我发送初始化参数的托管页面的标记。
<param name="initParams" value="<%=string.Format("APIServer={0}, PivotServer={1}", ConfigurationManager.AppSettings["APIServer"],ConfigurationManager.AppSettings["PivotServer"] ) %>" />
这是我提取初始化参数的地方:
private void Application_Startup(object sender, StartupEventArgs e)
{
apiServer = e.InitParams["APIServer"];
}
【问题讨论】:
-
但是 "::1" 是
localhost- 在 IPv6 中。 -
我在谷歌搜索后意识到这一点,但这无助于解决手头的问题。我将其传入,以便在 SL 应用程序中进一步使用,我可以调用该 API 以进行数据检索/持久性/等。我无法对“http://::1/MYAPI”进行网络调用。如果我在我的 SL 应用程序启动中简单地检查“::1”并将其替换为“localhost”,它工作正常,但这只是一个 hack。
-
::1相当于 IPv6 中的127.0.0.1/localhost -
再次,我意识到在谷歌搜索之后,但这无助于解决手头的问题。我将其传入,以便在 SL 应用程序中进一步使用,我可以调用该 API 以进行数据检索/持久性/等。我无法对“http://::1/MYAPI”进行网络调用。如果我在我的 SL 应用程序启动中简单地检查“::1”并将其替换为“localhost”,它工作正常,但这只是一个 hack。
-
向我们展示您用于分配 InitParams 服务器端的代码,包括您从何处获取服务器名称/IP 地址。
标签: silverlight params init