MBN配置文件已损坏,HRESULT为0x800704B6

时间:2013-07-15 08:22:06

标签: c#

我正在尝试使用MBN Api连接到3g网络。但是当我在IMbnConnection中调用connect方法时,它会引发异常。

The network connection profile is corrupted. (Exception from HRESULT: 0x800704B6)

我试图使用Microsoft的移动宽带文档(Link)在我的代码中生成的配置文件中找到拼写错误和其他错误,但我找不到。

我还在博客上发现此HRESULT可能来自错误的IMSI编号(here),因此我手动与Windows连接,并将我的个人资料中的数字与连接属性中的数字进行比较,发现它们是相同的,包括IMSI和ICC号码。

这就是我当前生成XML的方式。

<MBNProfile xmlns="http://www.microsoft.com/networking/WWAN/profile/v1">
    <Name>boomer3g</Name>
    <ICONFilePath>Link/To/BMPFILe</ICONFilePath>
    <Description>3G Network profile created by Boomerweb</Description>
    <IsDefault>true</IsDefault>
    <ProfileCreationType>UserProvisioned</ProfileCreationType>
    <SubscriberID>IMSI Number (i counted 15 characters)</SubscriberID>
    <SimIccID>ICC number (i counted 19 characters)</SimIccID>
    <AutoConnectOnInternet>false</AutoConnectOnInternet>
    <ConnectionMode>auto</ConnectionMode>
</MBNProfile>

这是生成XML配置文件的代码。 // XML命名空间

XNamespace xmlns = XNamespace.Get("http://www.microsoft.com/networking/WWAN/profile/v1");

XDocument xmlDocument = new XDocument(
    new XElement(xmlns + "MBNProfile",
    new XElement(xmlns + "Name", "boomer3g"),
    new XElement(xmlns + "ICONFilePath", Path.GetFullPath("Resource/KPN-icon.bmp")),
    new XElement(xmlns + "Description", "3G Network profile created by Boomerweb"),
    new XElement(xmlns + "IsDefault", true),
    new XElement(xmlns + "ProfileCreationType", "UserProvisioned"),
    new XElement(xmlns + "SubscriberID", subscriberInfo.SubscriberID),
    new XElement(xmlns + "SimIccID", subscriberInfo.SimIccID), 
    new XElement(xmlns + "AutoConnectOnInternet", false),
    new XElement(xmlns + "ConnectionMode", "auto")
   )
);

//Create xml document
string xml;
XmlWriterSettings XmlWriterSet = new XmlWriterSettings();
XmlWriterSet.OmitXmlDeclaration = true;
using (StringWriter StrWriter = new StringWriter())
using (XmlWriter XWriter = XmlWriter.Create(StrWriter, XmlWriterSet))
{
   xmlDocument.WriteTo(XWriter);
   XWriter.Flush();
   xml = StrWriter.GetStringBuilder().ToString();
}

还有什么可以给这个HRESULT?你们能举一个MBN简介的例子吗?或者我的代码生成配置文件有什么问题吗?

1 个答案:

答案 0 :(得分:2)

伙计们我解决了我的问题。事实证明我在xml上面没有我的XMl声明。

我的xml现在是这样的:

<?xml version="1.0" encoding="utf-8" ?>
<MBNProfile xmlns="http://www.microsoft.com/networking/WWAN/profile/v1">
    <Name>boomer3g</Name>
    <ICONFilePath>Link/To/BMPFILe</ICONFilePath>
    <Description>3G Network profile created by Boomerweb</Description>
    <IsDefault>true</IsDefault>
    <ProfileCreationType>UserProvisioned</ProfileCreationType>
    <SubscriberID>IMSI Number (i counted 15 characters)</SubscriberID>
    <SimIccID>ICC number (i counted 19 characters)</SimIccID>
    <AutoConnectOnInternet>false</AutoConnectOnInternet>
    <ConnectionMode>auto</ConnectionMode>
</MBNProfile>

所以事实证明我的代码没有任何问题,我只是删除了我不应该删除的东西。我知道这是一个愚蠢的错误。