У меня есть хранимая процедура SQL Server 2005 с такой подписью:
CREATE PROCEDURE [dbo].[ProcTRequest]
@Pxml xml, @ClientCode varchar(10)
AS
BEGIN
...
END
Мне поручено написать веб-службу .asmx
, которая будет вызывать эту хранимую процедуру. Вот у меня блок.
Если параметр @Pxml
указан как строка в веб-методе C#, мы получаем
Серверу не удалось обработать запрос.
Затем попробовал XmlText
в качестве типа для @Pxml
, что привело к
Серверу не удалось обработать запрос. Метод MyWebService.MyWebMethod не может быть отражен. Произошла ошибка, отражающая «PXml». ->; Произошла ошибка, отражающая тип «System.Xml.XmlText». -› System.Xml.XmlText нельзя использовать как: 'элемент xml'.
Как правильно вызвать эту хранимую процедуру из веб-метода С#? Обратите внимание, что параметр @Pxml
всегда будет правильно сформированным XML.
Человек, который будет вызывать эту веб-службу, использует Curl в системе Unix.
Хотя требуется ASMX, если это можно реализовать через WCF, не могли бы вы показать мне, как это сделать с помощью фрагмента псевдокода? Я еще не знаком с WCF.
Пожалуйста помоги. Спасибо.
ОБНОВЛЕНИЕ: так я называю SP
[WebMethod]
public string GetRequestID(string PXml, string clientcode)
{
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader dr = db.ExecuteReader("ProcRequestID", PXml, clientcode))
{
return dr["RequestID"].ToString();
}
}