2012-03-30 14 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

+0

どのような行でエラーが発生するのか、devとprodのURLの値 –

+0

コード内の唯一のことは明らかにURLは変数 'APIURL'です。その行にブレークポイントを設定して、コードを実行し、それが何を含んでいるのかを調べます。希望が助けてくれる! – mortb

答えて

0

我々はそれで間違って何を伝えるためにURLを参照してくださいする必要がありますが、あなたは、URLがこのような有効であることを確認するためにチェックすることができます。

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

どのように私を導いてください。この問題を解決する。

私はあなたが主な問題は、これはライブでしかなく、あなたのdevシステムでは起こらないと思いますので、デバッグは難しいですか?

提案のカップル:

  • ログコードを追加することに探す場所 - そこの情報の多くはそこだが、Log4Netよう 何かが良いスタートになります。ロギングコード をこの方法に追加すると、 の問題の原因となっているデータが表示されるはずです。
  • ユニットテストにもっと現実的なデータを追加したり、その他の内部テストを に追加して、これを検出できるかどうかを確認してください。