【问题标题】:Silverlight InitParams, "localhost" converts to "::1"?Silverlight InitParams,“localhost”转换为“::1”?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2011-05-11
    相关资源
    最近更新 更多