2012-01-30 7 views
6

No puedo enviar correo electrónico a través de ASP.NET y enviado un correo electrónico a mis anfitriones de la tela para un poco de ayuda y me dijeron que modificar la configuración de seguridad y fue enviado un enlace:Ajuste de nivel de confianza en web.config

http://forums.asp.net/t/1111145.aspx/1

he leído lo que ponía allí y trató de establecer <trust level="Full" originUrl="" /> en web.config, pero luego me sale el error:

This configuration section cannot be used at this path. This happens when the site administrator has locked access to this section using <location allowOverride="false"> from an inherited configuration file.

no he ajustado cualquier otro archivo web.config.

Así que pidió a los anfitriones de la tela de nuevo, y le preguntó si era un entorno de servidor que no puedo cambiar, pero la respuesta que me dieron fue simplemente:

You'll need to specify a more specific path.

que es precioso, pero no tengo ¡Ni idea de lo que eso significa!

Después de haber hecho un poco más de excavación Me pregunto si tengo que configurar un archivo separado trust, ¿es esto correcto?

¿Podría alguien señalarme la dirección correcta para configurar mi nivel de Confianza (me doy cuenta de que "lleno" probablemente también sea incorrecto) ya que realmente no entiendo lo que se supone que debo hacer!

Respuesta

7

Los niveles de confianza se documentan aquí: http://msdn.microsoft.com/en-us/library/ie/wyts434y.aspx. En el alojamiento compartido, los proveedores bloquean esa configuración, por lo que no puede cambiar en su web.config. Si claramente solicitó a su proveedor que le permitiera confiar plenamente en su solicitud, y si respondieron con "¿eh?", Entonces estaba hablando con una persona sin educación, ya sea solicitando escalada o cambiando hosts. "Por favor, configure mi aplicación con plena confianza" debe ser lo suficientemente claro. Tenga en cuenta que es posible que no estén dispuestos a hacerlo una vez que comprendan su solicitud.

Además, no puedo estar seguro de que se requiera la plena confianza para enviar correos. Enviar correo implica la capacidad de comunicarse con un servidor SMTP, y generalmente los servidores web permiten acceder solo a los suyos y bloquean todo lo demás (para la prevención de spam). No podrá convencerlos para que hagan una excepción, pero si pregunta "por favor díganme qué smtp y puerto usar para enviar correos electrónicos desde mi aplicación asp.net", deberían dárselos (si no, escalar o cambiar hosts). En realidad, debería haberles pedido que lo ayuden a enviar el correo primero, antes de llegar a la conclusión de que el nivel de confianza es lo que lo está obstruyendo (ahora, estoy bastante seguro de que no es así).

Además, lea esto, por favor: https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem

+0

Gracias. ¡Entonces lo que estás diciendo es que su respuesta fue aún más inútil de lo que me di cuenta! Refiriéndome a su punto de que debería haberles preguntado cómo enviar correos a través de sus servidores primero ... ¡En realidad, lo hice! Les envié un código de muestra y me dijeron que debería estar bien usarlo. Luego me encontré con el problema que me inspiró a publicar aquí. Los enviaré de nuevo por correo electrónico solicitando una respuesta más completa. –

+0

Estoy bastante seguro de tener una aplicación en alojamiento compartido con correo de envío de confianza parcial. Es poco probable que los anfitriones te otorguen plena confianza, ya que eso supone un riesgo para su servidor y para otras aplicaciones que se ejecutan en él; ellos usarán esa oportunidad para publicitar sus servidores dedicados, típicamente. Utilice las clases de .NET para enviar correos electrónicos (o al menos para probar que funcionen) antes de comenzar a utilizar algunas bibliotecas de terceros (puede encontrar un código de muestra, solo se necesitan unas pocas líneas y pocos cambios en web.config).Luego, si falla el envío de correo, pegue aquí la información de excepción; y resolveremos algo. –

+1

Sí, la mayoría del alojamiento compartido no es compatible con la confianza total, por lo que debe verificarlo con su proveedor actual. Pero, si realmente necesita alojamiento completo, puedo dar un nombre, HostForLife.eu. Puede encontrar su sitio en el sitio de Microsoft. :) –

-1

Prueba esto:

public static void ConfirmMail(string emailTo) 

{ 
    try 
    { 

     MailMessage message = new MailMessage(); 
     message.Subject = "Account Registration From 91calls"; 
     message.From = new MailAddress(Convert.ToString("[email protected]"),"Admin"); 
     message.To.Add(emailTo); 
     message.BodyEncoding = System.Text.Encoding.UTF8; 
     StringBuilder sb = new StringBuilder(); 
     sb.Append("<html>"); 
     sb.Append("<Body>"); 
     sb.Append("<table cellpadding='0' cellspacing='0' width='100%' border='0'>"); 
     sb.Append("<tr><td align='center'><table cellpadding='0' cellspacing='0' width='100%' border='0'>"); 
     // sb.Append("<tr><td align='left'><asp:Image ID='imgLogo' runat='server' ImageUrl='http://supervau.w01.winhost.com/images/logo.png' />"); 
     sb.Append("</td></tr><tr><td>Hi, <br></td></tr><tr><td align='left'>You are successfylly resgistered with 91 calls.<br>"); 
     sb.Append("<br>Thank you for using, : http://www.91calls.com<br /><br>For questions or concerns regarding your account, please visit : http://www.91calls.com"); 
     sb.Append("</td></tr></table></td></tr></table>"); 
     sb.Append("</Body>"); 
     sb.Append("</html>"); 
     message.Body = sb.ToString(); 
     message.IsBodyHtml = true; 
     SmtpClient client = new SmtpClient(); 
     client.Send(message); 


    } 
    catch 
    { 
    } 

} 
Cuestiones relacionadas