c# System.ServiceModel.Channels.Message to file

Можно сообщение прочитать через Message.ToString(), но так неверно оно будет скопировано и если вдруг вы при этом подписываете сообщение, то может нарушиться подпись. Данный способ был рабочим для меня.
                    
using (var msstream = new MemoryStream())
                    {
                        var xmlWriter = XmlDictionaryWriter.CreateTextWriter(msstream);
 
                        m.WriteMessage(xmlWriter);
 
                        xmlWriter.Flush();
                        msstream.Position = 0;
                        using (FileStream file = new FileStream("Responce.xml", FileMode.Create, System.IO.FileAccess.Write))
                        {
                            byte[] bytes = new byte[msstream.Length];
                            msstream.Read(bytes, 0, (int)msstream.Length);
                            file.Write(bytes, 0, bytes.Length);
                        }
                    }

с# Добавляем сертфикат в "Доверенные корневые центры сертификации"

void InstallRootCert(string certFileName)
{
    X509Certificate2 certificate = new X509Certificate2(cerFileName);
    X509Store store = new X509Store(StoreName.TrustedPublisher, StoreLocation.LocalMachine);

    store.Open(OpenFlags.ReadWrite);
    store.Add(certificate);
    store.Close();
}

c# проверка email

public static bool checkEmailString(string val)
        {
            if (val.Trim() != "")
            {
                System.Text.RegularExpressions.Match rex = 
                    System.Text.RegularExpressions.Regex.Match(val.Trim(),
                    "^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,3})$", 
                    System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                if (!rex.Success)
                    return false;
                else
                    return true;
            }
            else
                return false;
        }

Не видит namespace в Visual Studio

Кстати не раз уж сталкивался с такой проблемой и каждый раз как то решал, в очередной раз столкнулся и решил зафиксировать решение, чтобы потом не забыть. Решение: Надо чтобы в свойствах проекта и библиотеки совпадал Target Framework.

Некоторые библиотеки не входят допустим в Net Framework 4 client profile. В этом случает надо выбрать обычный четвертый нет фрэймворк и проблема решится.

c# Проверка состоит ли из чисел строка

public static bool isDigit(string val)
        {
            foreach (char c in val)
                if (!Char.IsDigit(c))
                    return false;
            return true;
        }

WCF 400 Bad request

Данная проблема начала возникать на моем сервисе. После гугления интернета наткнулся на то что она может проявляться из-за неверного представления адреса сервиса или из-за больших объемов данных. Есть наверняка и множество других причин, но в моем случае это был большой объем данных получаемый на входе сервисом.

Данную проблему можно решить двумя способами:
1 Посредством исправления web.config . Курсивом и жирным обозначено что нужно поправить. Веб конфиг необходимо править если вы развертываете сервис на своем IIS

<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WcfService2.Service1Behavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />          
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="WcfService2.Service1Behavior"
        name="WcfService2.Service1">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="b1" contract="WcfService2.IService1">
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding name="b1" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647"
                        maxStringContentLength="2147483647"
                        maxArrayLength="2147483647"
                        maxBytesPerRead="2147483647"
                        maxNameTableCharCount="2147483647" />

        </binding>
      </basicHttpBinding>
    </bindings>
  </system.serviceModel>

2 Второй способ актуален для тех кто развертывает сервис через new ServiceHost() . Почитать о нём можно тут . В данном случае мы меняем readerQuotas программно.

using (ServiceHost host = new ServiceHost(typeof(WCF_Lic_SA.ServiceLicSA), new Uri("http://localhost:8202/MyService")))
            {
                ServiceMetadataBehavior smb = new ServiceMetadataBehavior();

                smb.HttpGetEnabled = true;
                smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
                host.Description.Behaviors.Add(smb);
                host.Description.Behaviors.Find<ServiceDebugBehavior>().IncludeExceptionDetailInFaults = true;
                host.OpenTimeout = TimeSpan.FromSeconds(10);

                BasicHttpBinding b = new BasicHttpBinding();

                System.Xml.XmlDictionaryReaderQuotas myReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas();
                myReaderQuotas.MaxArrayLength = 2147483647;
                myReaderQuotas.MaxBytesPerRead = 2147483647;
                myReaderQuotas.MaxDepth = 2147483647;
                myReaderQuotas.MaxNameTableCharCount = 2147483647;
                myReaderQuotas.MaxStringContentLength = 2147483647;
                b.ReaderQuotas = myReaderQuotas;
                b.MaxBufferPoolSize = 2147483647;
                b.MaxBufferSize = 2147483647;
                b.MaxReceivedMessageSize = 2147483647;

                host.AddServiceEndpoint(typeof(WCF_Lic_SA.IServiceLicSA), b, "");

                host.Open();
            }

Не удалось обновить зависимости проекта. Зависимости объекта <имя dll> не удается установить.


Вот нашел в блогах решение может кому поможет http://sharpgreat.blogspot.ru/2012/09/mydll.html

Мою ситуацию решило удаление "основные выходные файлы" из обозревателя решений VS.
После я заново добавил "основные выходные файлы" и всё заработало.

Потом ещё возникала проблема с обновлением каких то "действий" тоже проекте устновщика, тоже их решал удалением и обновлением новых ссылок.

Вообще вот много сообщений об ошибках из данной ситуации и пути их решения http://msdn.microsoft.com/ru-ru/library/yhteff89(v=vs.90).aspx