Я использовал C89 во встроенном программировании, и отладка аппаратного обеспечения была кошмарной. У нас было несколько соглашений о кодировании, которые спасли наши здравомыслия:
Например:
#define NOERR 0
#define VariableLookupNULL 1024
#define VariableLookupNOTFOUND 1025
... separate #define for each error
#define EvaluateExpressionNULL 1055
#define EvaluateExpressionUNKNOWNOP 1056
int EvaluateExpression( char *expression, int* result )
{
ASSERT(result != 0);
if (expression==0)
return EvaluateExpressionNULL;
*result = 0;
while (*expression != 0)
{
switch (*expression)
{
case ' ':
case '\t':
break; // ignore whitespace
case 'a':
... other variables
{
int var = 0;
int lookupResult = VariableLookup(*expression, &var);
if (lookupResult != NOERR)
return lookupResult;
*result += var;
break;
}
... check operators, et al.
default:
return EvaluateExpressionUNKNOWNOP;
}
++expression;
}
return NOERR;
}
ASSERT был макросом отладки, который прерывал время выполнения.
(РЕДАКТИРОВАТЬ: Предыдущий ответ о FlatWSDL удален, потому что, как вы отметили, он касался удаления xsd: import, а не wsdl: import.)
Посмотрите это сообщение в блоге: Control сгенерирован WSDL в WCF
«... Всегда существует один WSDL, созданный для одного целевого URI пространства имен ...»
Есть ли у вас другое пространство имен для ServiceContract, DataContract, ServiceBehavior и т. Д.?
Вы также можете использовать проект WCFExtras, у которого есть расширение для создания одного WSDL-файла.
WCFExtras
Набор полезных расширений WCF включая поддержку Soap Header, WSDL документация и др.
Платформа WCF очень расширяема. и позволяет легко добавлять функции которые не являются частью основного продукта. Этот проект содержит некоторые расширения В проекте на основе WCF мне требовалось:
- Поддержка заголовка SOAP для WCF Добавление WSDL
- Документация из исходного кода XML Комментарии
- Переопределить URL-адрес местоположения адреса SOAP
- Один файл WSDL для лучшей совместимости со старыми инструментами SOAP.
Вам нужно добавить некоторые дополнительные поведения и т. Д.
См. Эти статьи здесь:
http://my-tech-talk.blogspot.com/2008/07/adding- flatwsdl-to-wcf-webservice.html
http://blogs.thinktecture.com/cweyer/archive/2007/05/10/414840.aspx
Есть несколько различных способов добиться этого.
Марк
моя проблема заключалась в определениях конечных точек, которые находятся в пространстве имен tempuri.org добавление bindingNamespace к объявлениям конечных точек решает мою проблему. всем спасибо за помощь :)