2013-07-27 3 views
0

WCFService.csAppend XML с использованием WCF

[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class WCFService : IWCFService{ 

public Boolean insertUser(String name, String password) 
{ 
    Boolean successInsert = false; 
    XDocument xDoc = XDocument.Load("`http://localhost:57833/DataProvider/XML/User.xml`"); 
    Boolean userExist = (from user in xDoc.Descendants("user") 
         where (String)user.Attribute("name") == name 
         select user).Any(); 

    if (!userExist) 
    { 
     XElement root = xDoc.Root; 
     int lastUserId = Convert.ToInt16(root.Elements("user").Last().Attribute("id").Value); 

     XmlDocument xmlDoc = new XmlDocument(); 
     xmlDoc.Load("`http://localhost:57833/DataProvider/XML/User.xml`"); 

     XmlNode xmlElementUser = xmlDoc.CreateNode(XmlNodeType.Element, "user", ""); 
     XmlAttribute xmlAttributeUserID = xmlDoc.CreateAttribute("id"); 
     XmlAttribute xmlAttributeName = xmlDoc.CreateAttribute("name"); 
     XmlAttribute xmlAttributePassword = xmlDoc.CreateAttribute("password"); 
     XmlAttribute xmlAttributeUserType = xmlDoc.CreateAttribute("userType"); 

     xmlAttributeUserID.Value = (lastUserId + 1).ToString(); 
     xmlAttributeName.Value = name; 
     xmlAttributePassword.Value = password; 
     xmlAttributeUserType.Value = "borrower"; 

     xmlElementUser.Attributes.Append(xmlAttributeUserID); 
     xmlElementUser.Attributes.Append(xmlAttributeName); 
     xmlElementUser.Attributes.Append(xmlAttributePassword); 
     xmlElementUser.Attributes.Append(xmlAttributeUserType); 

     xmlDoc.DocumentElement.AppendChild(xmlElementUser); 
     xmlDoc.Save("`http://localhost:57833/DataProvider/XML/User.xml`"); 
     successInsert = true; 
    } 
    return successInsert; 

} 
} 

Я делаю Windows Phone 7 приложений, и я хочу, чтобы извлечь из и добавить в файл XML с помощью WCF. И я сталкиваюсь с ошибкой «URI-форматы не поддерживаются». когда я хочу сохранить XML, который является этой строкой "xmlDoc.Save (" http://localhost:57833/DataProvider/XML/User.xml ");". Похоже, что WCF не может добавить XML-файл на сервер.

ответ

0

Вы не можете добавить файл в удаленный сервер, но только на локальном диске. Так что, если приведенный выше код выполняется на компьютере, где вы хотите сохранить использование XML:

xmlDoc.Save("c:\\User.xml") 

Если вы не на этом сервере (и не доступен через КСН), то вам необходимо загрузить файл к другой службе wcf на этой машине, чтобы она сохраняла ее локально.