2012-03-30 84 views
0

我有以下代码,它完全在dev服务器上运行,但在实时服务器上给出错误。无法确定URI的格式 - c#

它给了我下面的错误

System.UriFormatException无效的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); 
} 
+1

什么是导致您的代码失败的输入? – Oded 2012-03-30 15:07:46

+0

以及告诉哪条线产生错误,在dev和prod上URL的值是多少。 – 2012-03-30 15:08:28

+0

那么代码中唯一明显是URL的就是变量'APIURL'在该行设置断点,运行代码并查看启动器包含的内容。希望有所帮助! – mortb 2012-03-30 15:17:30

回答

0

我们需要看到的网址告诉你什么地方错了,但你可以检查,以确保该网址是有效的这样的:

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

请指导我如何解决这个问题。

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

一对夫妇的建议:

  • 查找中添加日志代码 - 有大量的信息在那里,但 像Log4Net将是一个良好的开端。将日志记录代码 添加到此方法中,并且您应该希望看到导致 问题的数据。
  • 看看您是否可以将更真实的数据添加到您的单元测试或 其他内部测试中,并查看是否可以发现此问题。