Результаты поиска
Заполнение DataSet или DataTable из результирующего набора запроса LINQ
Как можно представить запрос LINQ как веб-службу ASMX? Обычно с бизнес-уровня я могу вернуть типизированный DataSet или DataTable , который может быть сериализован для транспорта через ASMX.
Как я могу сделать то же самое для запроса LINQ? Есть ли способ заполнить типизированный DataSet или DataTable с помощью запроса LINQ?
public static MyDataTable CallMySproc()
{
string conn = "...";
MyDatabaseDataContext db = new MyDatabaseDataContext(conn);
MyDataTable dt = new MyDataTable();
// execute a sproc via LINQ
var query = from dr
in db.MySproc().AsEnumerable
select dr;
// copy LINQ query resultset into a DataTable -this does not work !
dt = query.CopyToDataTable();
return dt;
}
Как я могу получить результирующий набор запроса LINQ в DataSet или DataTable ? Кроме того, можно ли сериализовать запрос LINQ, чтобы я мог представить его как веб-службу ASMX?
Как распечатать документ HTML из веб-службы?
Я хочу распечатать HTML из веб-службы C#. Управление веб-браузером является избыточным и не работает хорошо в среде обслуживания, а также не работает хорошо в системе с очень жесткими ограничениями безопасности. Существует ли какая-либо бесплатная библиотека .NET , которая будет поддерживать печать базовой страницы HTML? Вот код, который у меня есть до сих пор, который не работает должным образом.
public void PrintThing(string document)
{
if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA)
{
Thread thread =
new Thread((ThreadStart) delegate { PrintDocument(document); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
else
{
PrintDocument(document);
}
}
protected void PrintDocument(string document)
{
WebBrowser browser = new WebBrowser();
browser.DocumentText = document;
while (browser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
browser.Print();
}
Это прекрасно работает при вызове из потоков типа UI,но ничего не происходит при вызове из потока типа службы. Изменение Print() на ShowPrintPreviewDialog() приводит к следующей ошибке скрипта IE:
Ошибка:
dialogArguments.___IE_PrintType- это null или не объект.URL:
res://ieframe.dll/preview.dlg
И появится небольшое пустое диалоговое окно предварительного просмотра печати.
Доморощенное потребление веб-сервисов
Я написал несколько веб-сервисов для приложения .net , теперь я готов их использовать. Я видел множество примеров, когда существует доморощенный код для использования службы в отличие от использования автоматически созданных методов, которые Visual Studio создает при добавлении веб-ссылки.
Есть ли в этом какие-то преимущества?
Как передать перечисленные значения в веб-службу
Моя дилемма заключается, в основном, в том, как разделить перечисление между двумя приложениями.
Пользователи загружают документы через интерфейсное приложение, которое находится в интернете. Это приложение вызывает веб-службу внутреннего приложения и передает ему документ. Серверное приложение сохраняет документ и вставляет строку в таблицу документов .
Тип документа (7 возможных типов документов: счет- фактура, договор и т.д.) передается в качестве параметра в метод UploadDocument веб-службы. Вопрос в том, каким должен быть тип (и возможные значения) этого параметра?
Поскольку вам нужно жестко закодировать эти значения в обоих приложениях, я думаю, что это O.K. чтобы использовать описательную строку (счет, контракт, WorkOrder , SignedWorkOrder).
Может быть, лучше создать перечисление DocumentTypes в первом приложении и воспроизвести его также во втором приложении, а затем передать соответствующее целочисленное значение веб-службе между ними?
Как легко использовать веб-сервис из PHP
Существует ли какой-либо инструмент для PHP, который можно использовать для генерации кода для использования веб-службы на основе ее WSDL ? Что-то сравнимое с щелчком "Add Web Reference" в Visual Studio или плагином Eclipse, который делает то же самое для Java.
Веб-службы на основе документов или RPC
Я нутром чувствую, что веб-сервисы на основе документов предпочтительнее на практике - это опыт других людей? Их легче поддерживать? (Я заметил, что SharePoint использует любой для "document type" в своем интерфейсе WSDL, я думаю, что это делает его документальным).
Кроме того-теперь люди предлагают услуги типа WSDL и Rest для одной и той же функциональности? WSDL популярен для генерации кода, но для таких интерфейсов, как PHP и Rails, они, похоже, предпочитают rest.
Вызов веб-REST услуги от классического ASP-страницы
Я хотел бы начать перемещать наши бизнес-слои приложений в коллекцию веб-сервисов REST. Однако большая часть нашей интрасети была построена с использованием классического ASP, и большинство разработчиков, где я работаю, продолжают программировать в классическом ASP. В идеале, чтобы они могли воспользоваться преимуществами уникального набора web APIs, его нужно было бы вызвать с классических страниц ASP.
Я не имею ни малейшего представления, как это сделать.
В чем разница между конечной точкой, сервисом и портом при работе с веб-сервисами?
Я использовал Apache CXF, чтобы представить около десяти классов java в качестве веб-служб.
Я создал клиентов, используя CXF, Axis и .NET.
В Axis и CXF генерируется "Service" или "Locator". От этой услуги вы можете получить "Port". "Port" используется для выполнения отдельных вызовов методов, предоставляемых веб-службой.
В .NET "Service" непосредственно предоставляет вызовы веб-службе.
Может ли кто-нибудь объяснить разницу между портом, службой, локатором и конечной точкой, когда речь заходит о веб-службах?
Ось:
PatientServiceImplServiceLocator locator =
new PatientServiceImplServiceLocator();
PatientService service = locator.getPatientServiceImplPort();
CXF:
PatientServiceImplService locator = new PatientServiceImplService();
PatientService service = locator.getPatientServiceImplPort();
.чистый:
PatientServiceImplService service = new PatientServiceImplService();
лучший способ сохранения данных в веб-службе .NET
У меня есть веб-служба, которая запрашивает данные из этого файла json, но я не хочу, чтобы веб-служба каждый раз обращалась к этому файлу. Я думаю, что, возможно, я могу хранить данные где-то еще (возможно, в памяти), чтобы веб-служба могла просто получить данные оттуда в следующий раз, когда она попытается запросить те же самые данные. Я вроде бы понимаю, что нужно сделать, но я просто не знаю, как это сделать на самом деле. Как мы сохраняем данные в веб-сервисе?
Обновление: оба предложения, кэширование и использование статических переменных, выглядят хорошо. Может быть, мне стоит использовать оба варианта, чтобы сначала посмотреть на один, а если его там нет, то использовать второй, если его там тоже нет, тогда я посмотрю на файл json.
Загрузка файлов через веб-службы
Можно ли загрузить файл с компьютера клиента на сервер через веб-службу? Клиент может запускать все, что угодно, от собственного настольного приложения до тонкого клиента ajax.
Возврат больших результатов через веб-сервис
В данный момент я работаю над веб-сервисом, и есть вероятность, что возвращаемые результаты могут быть довольно большими ( > 5 Мб).
Вполне допустимо, чтобы этот набор данных был таким большим, и веб-сервис можно назвать либо синхронизацией, либо асинхронностью, но мне интересно, что думают люди о следующем:
Если соединение потеряно, то весь результирующий набор должен быть регенерировали и отправляли снова. Есть любым способом я могу сделать все что угодно "resume" если соединение потеряно или сбросить?
Является ли отправка результирующего набора такого большого размера вообще уместной? Может быть, лучше реализовать какой-то "paging", где результирующий набор генерируется и хранится на сервере, а клиент может затем загружать куски результирующего набора в меньших количествах и повторно собирать набор в их конце?
Сколько дополнительных накладных расходов генерируется при отправке файла через веб-службу в виде массива байтов?
Этот вопрос и ответ показывают, как отправить файл в виде массива байтов через веб-службу XML. Сколько накладных расходов генерируется при использовании этого метода для передачи файлов? Я предполагаю, что данные выглядят примерно так:
<?xml version="1.0" encoding="UTF-8" ?>
<bytes>
<byte>16</byte>
<byte>28</byte>
<byte>127</byte>
...
</bytes>
Если этот формат правильный, то байты сначала должны быть преобразованы в UTF-8 символов. Каждый из этих символов выделяет 8 байт. Несколько байтов, хранящихся в базе 10, hex, или двоичных символов? Насколько больше выглядит файл, когда он отправляется из-за данных XML и кодировки символов? Встроено ли сжатие в веб-службы?
Можно ли вернуть объекты из WebService?
Вместо того чтобы возвращать обычную строку, есть ли способ вернуть классические объекты? Если нет, то каковы наилучшие практики? Вы переносите свой объект в xml и перестраиваете объект с другой стороны? Каковы другие возможности?
Возвращение DataTables в WCF/.NET
У меня есть сервис WCF, из которого я хочу вернуть DataTable. Я знаю, что это часто очень обсуждаемая тема, насколько возвращение DataTables является хорошей практикой. Давайте на минуту отложим это в сторону.
Когда я создаю DataTable с нуля, как показано ниже, нет никаких проблем вообще. Таблица создается, заполняется и возвращается клиенту, и все хорошо:
[DataContract]
public DataTable GetTbl()
{
DataTable tbl = new DataTable("testTbl");
for(int i=0;i<100;i++)
{
tbl.Columns.Add(i);
tbl.Rows.Add(new string[]{"testValue"});
}
return tbl;
}
Однако, как только я выхожу и нажимаю на базу данных для создания таблицы, как показано ниже, я получаю CommunicationException "The underlying connection was closed: The connection was closed unexpectedly."
[DataContract]
public DataTable GetTbl()
{
DataTable tbl = new DataTable("testTbl");
//Populate table with SQL query
return tbl;
}
Таблица заполняется правильно на стороне сервера. Он значительно меньше, чем тестовая таблица, которую я прокрутил и вернул, а запрос маленький и быстрый - здесь нет проблем с таймаутами или большой передачей данных. Используются те же самые точные функции и DataContracts/ServiceContracts/BehaviorContracts.
Почему способ заполнения таблицы имеет какое-либо отношение к успешному возвращению таблицы?
Каков ваш предпочтительный метод отправки сложных данных через веб-сервис?
Это 2008 год, и я все еще разрываюсь на этом. Поэтому я разрабатываю веб-метод, который нуждается в сложном типе, передаваемом в него и возвращаемом из него. Два варианта, с которыми я играю, это:
Передача и возврат реальных бизнес-объектов с данными и поведением. Когда wsdl.exe запускается, он автоматически создает прокси-классы, которые содержат только часть данных, и они будут автоматически преобразованы в мои реальные бизнес-объекты и из них на стороне сервера. На стороне клиента они будут использовать только тупой тип прокси, и им придется сопоставлять их с некоторыми реальными бизнес-объектами, как они считают нужным. Большой недостаток здесь заключается в том, что если я "own" как серверная, так и клиентская сторона, и я хочу использовать один и тот же набор реальных бизнес-объектов, я могу столкнуться с определенными головными болями с конфликтами имен и т. д. (Поскольку реальные объекты и прокси называются одинаково.)
Забудьте о попытке передать "real" бизнес-объектов. Вместо этого просто создайте простые объекты DataTransfer, которые я буду сопоставлять с моими реальными бизнес-объектами вручную. Они все равно копируются в новые прокси-объекты wsdl.exe, но по крайней мере я не обманываю себя, думая, что веб-сервисы могут изначально обрабатывать объекты с бизнес-логикой в них.
Кстати-кто-нибудь знает, как сказать wsdl.exe, чтобы не делать копию объекта? Разве мы не должны просто сказать ему: "Эй, используй этот существующий тип прямо здесь. Не копируйте его!"
Во всяком случае, пока я вроде как остановился на #2, но мне любопытно, что вы все думаете. У меня есть чувство, что есть гораздо лучшие способы сделать это в целом, и я даже не могу быть полностью точным по всем пунктам, поэтому, пожалуйста, дайте мне знать, что вы испытали.
Update: я только что узнал, что VS 2008 имеет возможность повторно использовать существующие типы при добавлении "ссылки на службу", а не создавать совершенно новый идентичный тип в файле прокси. Сладкий.
Лучшая практика для веб-сервисов
Я создал веб-сервис, и когда я хочу использовать его методы, я создаю его экземпляр в процедуре a, вызываю метод, и я, наконец, избавляюсь от него, однако я думаю, что также можно было бы создать экземпляр веб-сервиса в событии "private void Main_Load(object sender, EventArgs e)".
Дело в том, что если я делаю это первым способом, я должен создавать экземпляр webservice каждый раз, когда мне нужен один из его методов, но в другом случае я должен постоянно поддерживать связь с веб-сервисом, когда я использую его в форме, например.
Я хотел бы знать, какие из этих методов лучше, или если есть гораздо лучший способ сделать это
Стратегия 1
private void btnRead_Click(object sender, EventArgs e)
{
try
{
//Show clock
this.picResult.Image = new Bitmap(pathWait);
Application.DoEvents();
//Connect to webservice
svc = new ForPocketPC.ServiceForPocketPC();
svc.Credentials = new System.Net.NetworkCredential(Settings.UserName, Settings.Password);
svc.AllowAutoRedirect = false;
svc.UserAgent = Settings.UserAgent;
svc.PreAuthenticate = true;
svc.Url = Settings.Url;
svc.Timeout = System.Threading.Timeout.Infinite;
svc.CallMethod();
...
}
catch (Exception ex)
{
ShowError(ex);
}
finally
{
if (svc != null)
svc.Dispose();
}
}
Стратегия 2
private myWebservice svc;
private void Main_Load(object sender, EventArgs e)
{
//Connect to webservice
svc = new ForPocketPC.ServiceForPocketPC();
svc.Credentials = new System.Net.NetworkCredential(Settings.UserName, Settings.Password);
svc.AllowAutoRedirect = false;
svc.UserAgent = Settings.UserAgent;
svc.PreAuthenticate = true;
svc.Url = Settings.Url;
svc.Timeout = System.Threading.Timeout.Infinite;
}
private void btnRead_Click(object sender, EventArgs e)
{
try
{
//Show clock
this.picResult.Image = new Bitmap(pathWait);
Application.DoEvents();
svc.CallMethod();
...
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void Main_Closing(object sender, CancelEventArgs e)
{
svc.Dispose();
}
Лучшая практика для веб-сервисов
Я создал веб-сервис, и когда я хочу использовать его методы, я создаю его экземпляр в процедуре a, вызываю метод, и я, наконец, избавляюсь от него, однако я думаю, что также можно было бы создать экземпляр веб-сервиса в событии "private void Main_Load(object sender, EventArgs e)".
Дело в том, что если я делаю это первым способом, я должен создавать экземпляр webservice каждый раз, когда мне нужен один из его методов, но в другом случае я должен постоянно поддерживать связь с веб-сервисом, когда я использую его в форме, например.
Я хотел бы знать, какие из этих методов лучше, или если есть гораздо лучший способ сделать это
Стратегия 1
private void btnRead_Click(object sender, EventArgs e)
{
try
{
//Show clock
this.picResult.Image = new Bitmap(pathWait);
Application.DoEvents();
//Connect to webservice
svc = new ForPocketPC.ServiceForPocketPC();
svc.Credentials = new System.Net.NetworkCredential(Settings.UserName, Settings.Password);
svc.AllowAutoRedirect = false;
svc.UserAgent = Settings.UserAgent;
svc.PreAuthenticate = true;
svc.Url = Settings.Url;
svc.Timeout = System.Threading.Timeout.Infinite;
svc.CallMethod();
...
}
catch (Exception ex)
{
ShowError(ex);
}
finally
{
if (svc != null)
svc.Dispose();
}
}
Стратегия 2
private myWebservice svc;
private void Main_Load(object sender, EventArgs e)
{
//Connect to webservice
svc = new ForPocketPC.ServiceForPocketPC();
svc.Credentials = new System.Net.NetworkCredential(Settings.UserName, Settings.Password);
svc.AllowAutoRedirect = false;
svc.UserAgent = Settings.UserAgent;
svc.PreAuthenticate = true;
svc.Url = Settings.Url;
svc.Timeout = System.Threading.Timeout.Infinite;
}
private void btnRead_Click(object sender, EventArgs e)
{
try
{
//Show clock
this.picResult.Image = new Bitmap(pathWait);
Application.DoEvents();
svc.CallMethod();
...
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void Main_Closing(object sender, CancelEventArgs e)
{
svc.Dispose();
}
Исключение soapexception: отсутствует корневой элемент возникает, когда веб-служба .NET называется от Flex
У меня есть веб-приложение .net, которое имеет приложение Flex, встроенное в страницу. Это приложение flex вызывает веб-сервис .net. Я могу trace процесс выполнения через отладчик и все выглядит отлично, пока я не получу ответ:
soap:ReceiverSystem.Web.Services.Protocols.SoapException: Server was unable to process request
. ---> System.Xml.XmlException: Root element is missing.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res)
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.Read()
at System.Xml.XmlReader.MoveToContent()
at System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.MoveToContent()
at System.Web.Services.Protocols.SoapServerProtocolHelper.GetRequestElement()
at System.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest()
at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest
request, HttpResponse response, Boolean& abortProcessing)
--- End of inner exception stack trace ---
Вызов от flex выглядит хорошо, выполнение через веб-сервис хорошо, но это ответ, который я захватываю через wireshark, что здесь происходит?
Я попробовал несколько веб-методов, от "Hello World" до параматизированного methods...all возвращения с тем же ответом...
Я подумал, что это может иметь какое-то отношение к кодированию с помощью "--->",, но я не уверен, как управлять тем, что .net выводит в качестве ответа.
Большие, сложные объекты как результат работы веб-службы
Еще раз здравствуйте, дамы и господа!
OK, вслед за моим другим вопросом о результатах веб-службы ASP.NET, Прокси-классах и преобразовании типов . Я пришел к той части своего проекта, где мне нужно надеть свою мыслительную шапочку.
В принципе, у нас есть большой, сложный пользовательский объект, который должен быть возвращен из веб-службы и использован в клиентском приложении.
Теперь, основываясь на предыдущем обсуждении, мы знаем, что это будет затем принимать форму прокси-класса(классов) в качестве возвращаемого типа. Чтобы преодолеть это, нам нужно в основном скопировать свойства от одного к другому.
В данном случае, это то, что я бы очень, очень, очень хотел! хотелось бы избежать!
Так что, это заставило меня задуматься, как еще мы могли бы это сделать?
Мои текущие мысли заключаются в том, чтобы включить объект для полной сериализации в XML, а затем вернуть XML в виде строки из веб-службы. Затем мы десериализации на клиенте. Это будет означать изрядную часть украшения атрибутов, но, по крайней мере, код на обеих конечных точках будет легким, а именно, просто используя сериализатор .NET XML.
Что вы думаете по этому поводу?
Я хотел бы получить несколько советов по отладке исключений веб-службы WCF
Я создал службу WCF, и когда я просматриваю конечную точку, я получаю следующую ошибку:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode
xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">
a:ActionNotSupported
</faultcode>
<faultstring xml:lang="en-GB">
The message with Action '' cannot be processed at the receiver,
due to a ContractFilter mismatch at the EndpointDispatcher.
This may be because of either a contract mismatch (mismatched
Actions between sender and receiver) or a binding/security
mismatch between the sender and the receiver. Check that sender
and receiver have the same contract and the same binding
(including security requirements, e.g. Message, Transport, None).
</faultstring>
</s:Fault>
</s:Body>
</s:Envelope>
Я исправил проблему, но не получил удовольствия от опыта! Есть ли у кого-нибудь советы или инструменты для отладки подобных проблем?
Шифрование в веб-сервисах C#
Я ищу простой способ зашифровать мое сообщение soap в моем веб-сервисе C#.
Я искал WSE 3.0 , но, похоже, Microsoft отказалась от его поддержки, и поэтому его не так просто использовать.
Похоже, что WCF мог бы быть вариантом, но я предпочитаю не обновляться с .NET 2.0 .
Какой-нибудь простой и понятный метод шифрования?
Веб-сервис жив навсегда
Я часто использую веб-сервис таким образом
public void CallWebservice()
{
mywebservice web = new mywebservice();
web.call();
}
но иногда я делаю это
private mywebservice web;
public Constructor()
{
web = new mywebservice();
}
public void CallWebservice()
{
web.call();
}
Второй подход мне очень нравится, но иногда он тайм-аут, и мне пришлось снова запустить приложение, первый, я думаю, что он приносит накладные расходы, и это не очень эффективно, на самом деле, иногда первый вызов возвращает WebException - ConnectFailure (я не знаю, почему).
Я нашел статью (проблемы веб-сервиса (свет в конце туннеля?)) что превышает время ожидания превращения свойства KeepAlive в false в переопределенной функции GetWebRequest, вот код:
Protected Overrides Function GetWebRequest(ByVal uri As System.Uri) As System.Net.WebRequest
Dim webRequest As Net.HttpWebRequest = CType(MyBase.GetWebRequest(uri), Net.HttpWebRequest)
webRequest.KeepAlive = False
Return webRequest
End Function
Вопрос в том, можно ли продлить навсегда время ожидания веб-сервиса и, наконец, как вы реализуете свои веб-сервисы для решения этой проблемы?
Вызов веб-службы ASP.NET из ASP с помощью SOAPClient
У меня есть веб-сервис ASP.NET с такими функциями, как:
[WebService(Namespace = "http://internalservice.net/messageprocessing")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class ProvisioningService : WebService
{
[WebMethod]
public XmlDocument ProcessMessage(XmlDocument message)
{
// ... do stuff
}
}
Я вызываю веб-службу из ASP, используя что-то вроде:
provWSDL = "http://servername:12011/MessageProcessor.asmx?wsdl"
Set service = CreateObject("MSSOAP.SoapClient30")
service.ClientProperty("ServerHTTPRequest") = True
Call service.MSSoapInit(provWSDL)
xmlMessage = "<request><task>....various xml</task></request>"
result = service.ProcessMessage(xmlMessage)
Проблема, с которой я сталкиваюсь, заключается в том, что когда XML достигает метода ProcessMessage, веб-служба plumbing попутно добавила пространство имен по умолчанию. т. е. если я установлю точку останова внутри ProcessMessage (сообщение XmlDocument), я увижу:
<request xmlns="http://internalservice.net/messageprocessing">
<task>....various xml</task>
</request>
Когда я захватываю пакеты по проводу, я вижу, что XML, отправленный инструментарием SOAP, немного отличается от того, что отправлено клиентом .NET WS. Набор инструментов SOAP отправляет:
<SOAP-ENV:Envelope
xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema"
xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ProcessMessage xmlns="http://internalservice.net/messageprocessing">
<message xmlns:SOAPSDK4="http://internalservice.net/messageprocessing">
<request>
<task>...stuff to do</task>
</request>
</message>
</ProcessMessage>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Если клиент отправляет .NET:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ProcessMessage xmlns="http://internalservice.net/messageprocessing">
<message>
<request xmlns="">
<task>...stuff to do</task>
</request>
</message>
</ProcessMessage>
</soap:Body>
</soap:Envelope>
Прошло так много времени с тех пор, как я использовал инструментарий ASP/SOAP для вызова веб-сервисов .NET, что я не могу вспомнить все умные tricks/SOAP-fu, которые я использовал, чтобы обойти подобные вещи.
Есть какие-нибудь идеи? Одним из решений является создание вызываемого COM .NET прокси, который принимает XML как строковый парам и вызывает WS от моего имени, но это дополнительный уровень сложности/работы, которую я надеялся не делать.
Автоматизированное Тестирование Веб-Сервисов
Я хотел бы сделать некоторое интеграционное тестирование веб-службы из NUnit или MBUnit. Я еще не углублялся в это слишком глубоко, но я почти уверен, что мне нужно будет раскрутить WebDev.WebServer.exe внутри "unit test", чтобы сделать это. (Я знаю, что это не совсем юнит-тест).
Да, я могу тестировать базовые объекты, которые использует веб-служба, самостоятельно (что я и делаю), но в этом случае мне интересно проверить, что прокси-серверы работают и обрабатываются должным образом и т. д.
Какой-нибудь совет?
"Бесшумная" печать в веб-приложении
Я работаю над веб-приложением, которое должно печатать молча, то есть без участия пользователя. Какой самый лучший способ достичь этого? Ему не нравится, что это можно сделать только с Javascript, ни Flash и / или AIR. Самое близкое, что я видел, включает в себя Java applet.
Я могу понять, почему это было бы плохой идеей для любого веб-сайта, чтобы иметь возможность сделать это. Этот конкретный экземпляр предназначен для внутреннего приложения,и он вполне приемлем, если пользователю необходимо добавить URL в список надежных сайтов, установить аддон и т. д.
Закрытие и утилизация обслуживание WCF
Метод Close на ICommunicationObject может выдавать два типа исключений, как MSDN описывает здесь . Я понимаю, почему метод Close может вызывать эти исключения, но я не понимаю, почему метод Dispose на прокси-сервере службы вызывает метод Close без try вокруг него. Разве ваш метод Dispose не является единственным местом, где вы хотите убедиться, что вы не создаете никаких исключений?
RESTful web services и HTTP глаголов
Каков минимальный набор глаголов HTTP, который сервер должен разрешить для веб-службы быть классифицирован как RESTful?
А что, если мой хозяин не разрешит PUT и DELETE ?
Действительно ли это важно, могу ли я жить долго и счастливо только с GET и POST ?
Обновление: Спасибо за ответы, ребята, ответ Роджера был, вероятно, лучшим из-за ссылки на интервью Билла Веннерса и Эллиота расти Гарольда. Теперь я все понимаю.
Исключение InvalidOperationException при создании экземпляра веб-службы wcf
У меня есть веб-служба WCF, на которую ссылаются из библиотеки классов. После запуска проекта при создании объекта клиента службы из библиотеки классов я получаю сообщение InvalidOperationException with:
Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт 'MyServiceReference.IMyService' в клиенте ServiceModel раздел конфигурации. Это может быть связано с тем, что файл конфигурации не был найдено для вашего приложения, или потому что нет соответствия элементов конечной точки этот контракт можно найти в элементе клиент.
Код, который я использую для создания экземпляра::
myServiceClient = new MyServiceClient();
где MyServiceClient наследуется от
System.ServiceModel.ClientBase
Как мне решить эту проблему?
Примечание: у меня есть отдельное консольное приложение, которое просто создает один и тот же объект службы и вызывает его, и оно работает без каких-либо проблем.
Есть ли способ иметь функциональность index.html с содержимым, размещенным на S3?
Есть ли способ сделать S3 по умолчанию для страницы index.html? E.g.: Список объектов my bucket:
/index.html
/favicon.ico
/images/logo.gif
Звонок на www.example.com/ index.html
Отладка веб-службы с помощью пакета SOAP
У меня есть веб-служба, которую я создал в C#, и тестовый жгут, предоставленный моим клиентом. К сожалению, мой веб-сервис, похоже,не анализирует объекты, созданные тестовым жгутом. Я считаю, что проблема заключается в сериализации пакета soap.
Используя TCPTrace, я смог получить пакет soap, переданный веб-службе, но только на удаленной машине, поэтому я не могу отладить его там. Есть ли способ вызвать мой локальный веб-сервис с генерируемым пакетом soap, а не мой текущий тестовый жгут, где я вручную создаю объекты и вызываю веб-сервис через веб-ссылку?
машина, на которой я получил пакет soap, была на виртуальной машине, поэтому я не могу связать ее с моей машиной. Я полагаю, что ищу инструмент, в который можно вставить пакет soap, и он, в свою очередь, вызовет мой веб-сервис
Как лучше всего использовать веб-сервисы в python?
У меня есть приложение среднего размера, которое работает как веб-сервис .net, который я не контролирую, и я хочу создать свободный pythonic API над ним, чтобы обеспечить легкий сценарий.
Я хотел узнать, что является лучшим / наиболее практичным решением для использования веб-сервисов в python.
Редактировать: Мне нужно потреблять комплекс soap WS и у меня нет никакого контроля над этим.
Как сделать кроссдомен звонки из Silverlight?
Что необходимо для успешного выполнения вызова crossdomain из Silverlight?