“Silverlight InitParams”;“本地主机”;转换为";::“1”吗;?

“Silverlight InitParams”;“本地主机”;转换为";::“1”吗;?,silverlight,params,init,Silverlight,Params,Init,我有一个silverlight应用程序,正在使用init params将API服务器URL从我的web配置传递到主机页,再传递到App.xaml.cs API url包含“localhost”,然后是端口号。 但当它在调试模式下到达App.xaml.cs时,它将作为“::1”传入,然后是端口号 为什么会这样?除了简单地检查“::1”并将其转换回“localhost”之外,还有其他方法吗 编辑 这是托管页面的标记,我在其中发送init参数 <param name="initParams"

我有一个silverlight应用程序,正在使用init params将API服务器URL从我的web配置传递到主机页,再传递到App.xaml.cs

API url包含“localhost”,然后是端口号。 但当它在调试模式下到达App.xaml.cs时,它将作为“::1”传入,然后是端口号

为什么会这样?除了简单地检查“::1”并将其转换回“localhost”之外,还有其他方法吗

编辑

这是托管页面的标记,我在其中发送init参数

 <param name="initParams" value="<%=string.Format("APIServer={0}, PivotServer={1}", ConfigurationManager.AppSettings["APIServer"],ConfigurationManager.AppSettings["PivotServer"] ) %>" />

我只是在运行时检查并更改它。

但是:“:1”是IPv6中的
localhost
。我在谷歌搜索后意识到这一点,但这无助于解决当前的问题。我将其传入,以便在SL应用程序中进一步使用,我可以调用该API进行数据检索/持久化/等等。我不能对“http://:::1/MYAPI”进行web调用。如果我在我的SL应用程序启动时简单地检查“::1”并用“localhost”替换它,它可以正常工作,但这只是一个黑客行为。
::1
相当于IPv6Again中的
127.0.0.1
/
localhost
,我意识到在谷歌搜索后,但这无助于解决当前的问题。我将其传入,以便在SL应用程序中进一步使用,我可以调用该API进行数据检索/持久化/等等。我不能对“http://:::1/MYAPI”进行web调用。如果我在我的SL应用程序启动中简单地检查“::1”并将其替换为“localhost”,则效果很好,但这只是一个黑客行为。向我们展示您用于分配InitParams服务器端的代码,包括从何处获取服务器名/IP地址。
private void Application_Startup(object sender, StartupEventArgs e)
{
    apiServer = e.InitParams["APIServer"];
}