【问题标题】:The format of the URI could not be determined - c#无法确定 URI 的格式 - c#
【发布时间】:2012-03-30 15:05:42
【问题描述】:

我的以下代码在开发服务器上完美运行,但在实时服务器上出现错误。

它给了我以下错误

System.UriFormatException: Invalid URI: 无法确定 URI 的格式。

请指导我如何解决此问题。

<-----------------Code Started--------------------->

private void InsertThrAPI(clsProductProp objProductProp)
{
    xmldata data = new xmldata();
    data.Items = new xmldataProducts[1];
    data.Items[0] = new xmldataProducts();


    objProduct.stockstatus = Convert.ToString(objProductProp.stockstatus);
    objProduct.price = Convert.ToString(objProductProp.price);
    objProduct.productname = Convert.ToString(objProductProp.productname);
    objProduct.productshortname = Convert.ToString(objProductProp.productshortname);
    objProduct.productcode = Convert.ToString(objProductProp.productcode);
    objProduct.description = Convert.ToString(objProductProp.description);
    objProduct.technicalspecs = Convert.ToString(objProductProp.technicalspecs);
    objProduct.shippingcost = Convert.ToString(objProductProp.shippingcost);
    objProduct.productweight = Convert.ToString(objProductProp.productweight);
    objProduct.vendorprice = Convert.ToString(objProductProp.vendorprice);
    if (objProductProp.shipping == true || objProductProp.shipping == Convert.ToBoolean(1))
    {
        objProduct.shipping = "Y";
    }
    else
    {
        objProduct.shipping = "N";
    }

    //Populate the product fields here

    data.Items[0].StockStatus = objProduct.stockstatus;
    data.Items[0].ProductPrice = objProduct.price;
    data.Items[0].ProductName = objProduct.productname;
    data.Items[0].ProductNameShort = objProduct.productshortname;
    data.Items[0].ProductCode = objProduct.productcode;
    data.Items[0].ProductDescription = objProduct.description;
    data.Items[0].TechSpecs = objProduct.technicalspecs;
    data.Items[0].FreeShippingItem = objProduct.shipping;
    data.Items[0].Fixed_ShippingCost = objProduct.shippingcost;
    data.Items[0].ProductWeight = objProduct.productweight;
    data.Items[0].Vendor_Price = objProduct.vendorprice;




    string productXML = Utils.GetProductXML(data);
    string APIURL = Utils.GetAPIPostURL(ImportMode.Insert);
    XMLPostManager manager = new XMLPostManager();
    string response = manager.SendXMLToURL(APIURL, productXML);

    //Response.Write(response);
}

【问题讨论】:

  • 导致代码失败的输入是什么?
  • 那么如何告诉哪一行产生了错误,开发和生产中 URL 的值是什么。
  • 好吧,代码中唯一明显是 URL 的就是变量 APIURL 在该行设置断点运行代码并查看它包含的内容供初学者参考。希望有帮助!

标签: c# asp.net


【解决方案1】:

我们需要查看 URL 以告诉您它有什么问题,但您可以检查以确保 URL 有效,如下所示:

if (Uri.IsWellFormedUriString(APIURL, UriKind.RelativeOrAbsolute))
{
    //url is valid
}

【讨论】:

    【解决方案2】:

    请指导我如何解决此问题。

    我猜你的主要问题是这只发生在现场而不是在你的开发系统中,所以调试很难?

    几点建议:

    • 考虑添加日志记录代码 - 那里有很多信息,但是 像Log4Net 这样的东西会是一个好的开始。添加日志记录代码 使用这种方法,您应该希望看到导致的数据 问题。
    • 看看是否可以在单元测试中添加更真实的数据或 其他内部测试,看看你是否能发现这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多