Thumb Bild mit ASP.net erzeugen

Mit ASP.net ist es relativ einfach ein Thumb Bild zu erzeugen. ASP.net stellt dafür die Klasse „Graphics“ zur Verfügung.

Dim thumb As New Bitmap(width, height)
 Dim g As Graphics = Graphics.FromImage(thumb)

g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic

g.DrawImage(bm, New Rectangle(destX, destY, width, height), New Rectangle(0, 0, bm.Width, bm.Height), GraphicsUnit.Pixel)

g.Dispose()

thumb.Save(strDestinationpfad, System.Drawing.Imaging.ImageFormat.Jpeg)

Download Beispielscript

imageresize.aspx

E-Mail mit Authentifizierung mit ASP CDO versenden

Beispielscript für das versenden von E-Mails mittels ASP.

<%

Const cdoSendUsingPickup = 1 'E-Mail mithilfe des SMTP Pickup Verzeichnis versenden .
Const cdoSendUsingPort = 2 'E-Mail mithilfe des Netwerkes versenden. (SMTP over the network).

Const cdoAnonymous = 0 'keine Authentifizierung
Const cdoBasic = 1 'Klartext Authentifizierung
Const cdoNTLM = 2 'NTLM

Set objMessage = CreateObject("CDO.Message") 
objMessage.Subject = "Example CDO Message" 
objMessage.From = """DeinNmae"" <ww@yy.com>" 
objMessage.To = "dietmar@harb.at" 
objMessage.TextBody = "Beispieltext" & vbCRLF & "SMTP Authentifizierung."

'== Nachfolgende Sektion dient zum Konfigurieren des Remote SMTP Servers.

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 

'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "domainname"

'Authentifizierungsmethode, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic

'UserID des SMTP Servers, meist die E-Mailadresse
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "ww@yy"

'Passwort des SMTP Servers
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "+++++"

'Server Port (normalerweise 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 

'SSL verwenden? (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False

'Connection Timeout in Sekunden 
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

objMessage.Configuration.Fields.Update

'==End Konfiguration SMTP Server==

objMessage.Send

%>

aspSmartUpload.dll

aspSmartUpload ist eine Komponente zum Uploaden von Files via Classic ASP und IIS.

  1. Installation unter C:\Windows\SysWOW64\
  2. Registrierung  der DLL mit dem Kommando: regsvr32 C:\Windows\SysWOW64\aspSmartUpload.dll
  3. 32-bit Applikation muß für den entsprechenden Applicationpool aktiviert sein.

Beispielcode:


<%
' Variables
' *********
 Dim mySmartUpload
 Dim intCount
 
' Object creation
' ***************
 Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.TotalMaxFileSize = 8388608
	mySmartUpload.MaxFileSize = 2097152
	mySmartUpload.AllowedFilesList = "jpg,jpeg,png"
	mySmartUpload.DeniedFilesList = "bat,exe,com,asp"
	mySmartUpload.DenyPhysicalPath = False
' Upload
' ******
 mySmartUpload.Upload

' Save the files with their original names in a virtual path of the web server
' ****************************************************************************
 intCount = mySmartUpload.Save("/aspSmartUpload")
 ' sample with a physical path 
 ' intCount = mySmartUpload.Save("c:\temp\")

' Display the number of files uploaded
' ************************************
 Response.Write(intCount & " file(s) uploaded.")
%>
aspsmartupload_v3_3
aspsmartupload_samples

Client IP Adresse mittels Javascpript auslesen

M=F6chte man auf Browser Seite die IP Adresse des Cl=
ients auslesen kann das wie folgt bewerkstelligt werden.

 

Javascript

<script type=3D"application/javascript">

 
function
getIP(json)
{

    document.write=
("My
public IP address is: "
, json.ip);

 
}

</script>

 

<script type=3D"application/javascript"
src
=3D"https://api.ipify.org?format=3Djsonp&callback=3Dg=
etIP"
></script&=
gt;

 

JQuery

&=
lt;
script type=3D"application/javascript"=
>
 $(func=
tion
() {
    =
$
.getJSON("https://api.ipify.org?form=
at=3Djsonp&callback=3D?"
,=
=

   &=
nbsp;  
function(json) {
   &=
nbsp;    document
.write
(&qu=
ot;My public IP address is: "
, jso=
n
.ip);
   &=
nbsp;  
}
    );
 });
</script>

 

C#

using System=
;
using System=
.Net;=
=

 
namespace Ipify.Examples {
    =
class Program {
   &=
nbsp;    
public static void=
Main
(string[] args) {

   &=
nbsp;        WebClient webClient
=
=3D new WebClient();
   &=
nbsp;        string publicIp
=3D webClient.DownloadString("https://api.ipify.org"
);
   &=
nbsp;        Console
.WriteLine("My public IP Address is: {0}", publicIp);
   &=
nbsp;    
}
    =
}
}=

 

VB.net

Dim client as New System.Net.=
WebClient
Dim ip as String =3D c=
lient
.DownloadString("https://api.i=
pify.org"
)

 

Vorschau der Website

Wenn die Domain noch nicht über den neuen Server erreichbar ist, kann die hochgeladene Website trotzdem schon angesehen und getestet werden.

Dazu gibt es 2 Möglichkeiten:

  1. Benutzen Sie im Adminpanel einfach die Websitenvorschau.
  2. Ändern Sie temporär Ihre lokale Hosts Datei.

Änderung der Hosts Datei. So geht es.

  1. Öffnen Sie den Windows Explorer und gehen Sie auf C:\Windows\System32\drivers\etc\
  2. Öffnen Sie die Datei Hosts als Administrator.
  3. Geben Sie folgende 2 Zeilen ein
    1. <IpAdresse>  <domainnameOhneWWW>
    2. <IpAdresse>  <domainnameMit*>
  4. Beispieleinträge
    1. 83.169.12.153 harb.at
    2. 83.169.12.153 *.harb.at
  5. Speichern Sie die Hosts Datei und starten Sie den Computer neu.
  6. Fertig

hosts

hosts-file

PHP 301 Redirect Beispiel

<?php

header(„HTTP/1.1 301 Moved Permanently“);
header(„Location: http://www.neuedomain.com/neuerordner/neueseite.htm“);
exit();

?>

ASP 301 Redirect Beispiel (VBScript)

<%@ Language=VBScript %>
< %
Response.Status=“301 Moved Permanently“
Response.AddHeader „Location“, „http://www.neuedomain.com/neuerordner/neueseite.asp“
Response.end
%>

ASP .NET 301 Redirect Beispiel (C#)

<script runat=“server“>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = „301 Moved Permanently“;
Response.AddHeader(„Location“,“http://www.neue-url.com/“);
}
< /script>

Plesk: Wichtige Befehle für das Commandline Tool %plesk_bin%

Rekonfigurieren einer Domain

Standardpfad zur Pleskinstallation

%plesk_bin%

C:\Program Files (x86)\Parallels\Plesk\admin\bin

 

CMD:

%plesk_bin%“\websrvmng.exe –remove-vhost –vhost-name=testdomain.com

%plesk_bin%“\websrvmng.exe –reconfigure-vhost –vhost-name=testdomain.com

%plesk_bin%“\websrvmng.exe –reconfigure-all

Zum Reconfigurien der FTP Zugänge

%plesk_bin%“\ftpmng.exe –remove-vhost –vhost-name=yourdomain.com
%plesk_bin%“\ftpmng.exe –reconfigure-vhost –vhost-name=yourdomain.com

Für alle Domains

„%plesk_bin%“\ftpmng.exe –remove-all
„%plesk_bin%“\ftpmng.exe –reconfigure-all

Komplette Reference

–help

–features

–status
–start
–stop
–restart

–install
–uninstall

–reconfigure-all
–remove-all

–add-ip-address –ip-address=<ip_address>
–remove-ip-address –ip-address=<ip_address>
–change-ip-address  –old-ip-address=<ip_address> –new-ip-address=<ip_address>

–set-certificate –ip-address=<ip>

–add-domain –domain-name=<domain>
–remove-domain  –domain-name=<domain>

–set-default-domain –ip-address=<ip> –vhost-name=<domain>
–reset-default-domain –ip-address=<ip>

–add-alias  –domain-name=<domain> –alias-name=<alias> [–web] [–mail]
–remove-alias  –domain-name=<domain> –alias-name=<alias> [–web] [–mail]
–rename-alias  –domain-name=<domain> –old-alias-name=<alias> –new-alias-name [–web] [–mail]
–change-alias-type –domain-name=<domain> –alias-name=<alias>
[–old-web] [–old-mail]
[–new-web] [–new-mail]

–install-vhost –vhost-name=<domain>
–reconfigure-vhost –vhost-name=<domain> [–config=<xml>]
–reconfigure-vhosts –vhost-names=<dom1[;dom2;…]>
–remove-vhost –vhost-name=<domain>
–rename-vhost –old-name=<old_domain> –new-name=<new_domain>
–start-vhost –vhost-name=<domain>
–stop-vhost  –vhost-name=<domain>
–set-vhost-mime-types –vhost-name=<domain> –mime-types=<ext=type;…>
–get-vhost-mime-types –vhost-name=<domain>
–get-vhost-log-dir –vhost-name=<domain>
–get-vhost-default-doc –vhost-name=<domain>
–get-vhost-performance –vhost-name=<domain>
–set-vhost-performance –vhost-name=<domain> –bandwidth=<bandwidth> –max-connections=<max_connections>

–add-subdomain –vhost-name=<domain> –subdomain=<subdomain>
–update-subdomain –vhost-name=<domain> –subdomain=<subdomain> [–config=<xml>]
–remove-subdomains –vhost-name=<domain> [–subdomains=<sub1[;sub2;…]>]
–rename-subdomain –vhost-name=<domain> –old-name=<old_sub> –new-name=<new_sub>
–start-subdomain –vhost-name=<domain> –subdomain=<subdomain>
–stop-subdomain –vhost-name=<domain> –subdomain=<subdomain>
–get-subdomain-performance –vhost-name=<domain> –subdomain=<subdomain>
–set-subdomain-performance –vhost-name=<domain> –subdomain=<subdomain>
–bandwidth=<bandwidth> –max-connections=<max_connections>

–add-web-user  –vhost-name=<domain> –web-user=<user> [–no-default-pages]
–update-web-user –vhost-name=<domain> –web-user=<user>
–update-web-users –vhost-name=<domain>
–remove-web-users  –vhost-name=<domain> [–web-users=<user1[;user2;…]>]

–add-fp-user –vhost-name=<domain> –fp-user=<user>
–rename-fp-user  –vhost-name=<domain> –old-user=<user> –new-user=<user>
–remove-fp-user –vhost-name=<domain> –fp-user=<user>]
–update-fp-mail-settings  –domain-name=<domain>
–update-fp-settings –domain-name=<domain> [–subdomain=<sub>]

–list-wellknown-content-types
–get-mime-types –vhost-name=<vhost> [–vdir-name=<vdir>]
–set-mime-types –vhost-name=<vhost> –mime-types=<ext=type;…> [–vdir-name=<vdir>]
–set-global-mime-type –extension=<ext> –type=<type>

–get-error-docs –vhost-name=<vhost> [–vdir-name=<vdir>]
–set-error-docs –vhost-name=<vhost> –error-docs=<xml> [–vdir-name=<vdir>]

–exists-vdir –vhost-name=<vhost> [–vdir-name=<vdir>]
–get-vdir –vhost-name=<vhost> [–vdir-name=<vdir>]
–add-vdir –vhost-name=<vhost> –vdir-config=<xml> [–parent-vdir=<vdir>]
–update-vdir –vhost-name=<vhost> –vdir-config=<xml> [–parent-vdir=<vdir>]
–remove-vdir –vhost-name=<vhost> –vdir-name=<vdir>
–rename-vdir –vhost-name=<vhost> –old-name=<old_vdir> –new-name=<new_vdir>
–get-vdir-subtree –vhost-name=<vhost> [–vdir-name=<vdir>]

–list-wdirs  –vhost-name=<vhost> [–wdir-name=<wdir>]
–remove-wdir –vhost-name=<vhost> –wdir-name=<wdir>
–rename-wdir –vhost-name=<vhost> –old-name=<old_wdir> –new-name=<new_wdir>

–add-extension  –file=<file> –description=<description> [–group=<group>]
–remove-extension  –file=<file>
–allow-extension –file=<file>
–prohibit-extension –file=<file>

–add-protection –vhost-name=<domain> –directory=<dir> [–subdomain=sub]
–update-protection –vhost-name=<domain> –directory=<dir> [–subdomain=sub]
–remove-protections  –vhost-name=<domain> [–directories=<dir1[;dir2;…]>] [–subdomain=sub]

–change-admin-email –email=<admin_email>

–reconfigure-webmail [–webmail=<type>]
–update-webmail-link –domain-name=<domain>

–reconfigure-sqladmin
–update-sqladmin-link –domain-name=<domain>

–reconfigure-sitebuilder
–update-sitebuilder-link –domain-name=<domain>

–update-anon-password –domain-name=<domain>
–update-anon-passwords-all

–get-scripts –vhost-name=<vhost> –app-name=<vdir>
–set-scripts –vhost-name=<vhost> –app-name=<vdir> –scripts=<xml>

–remove-sites-cache

–update-www-prefix –domain-name=<domain> [–subdomain=<sub>]

–set-aspmaxbody –vhost-name=<vhost> –vdir-name=<vdir> [–value=<value of AspMaxRequestEntityAllowed IIS property>]
–set-aspmaxbuffer  –vhost-name=<vhost> –vdir-name=<vdir> [–value=<value of AspBufferingLimit IIS property>]
–get-aspmaxbody –vhost-name=<vhost> –vdir-name=<vdir>
–get-aspmaxbuffer –vhost-name=<vhost> –vdir-name=<vdir>

–set-aspenableserverdebug –vhost-name=<vhost> –vdir-name=<vdir> [–value=<true|false>]
–set-aspenableclientdebug  –vhost-name=<vhost> –vdir-name=<vdir> [–value=<true|false>]
–get-aspenableserverdebug –vhost-name=<vhost> –vdir-name=<vdir>
–get-aspenableclientdebug –vhost-name=<vhost> –vdir-name=<vdir>

debug = false

Warum sollte man bei ASP.net Applikationen debug = false setzen.

Neben Leistungseinbußen gibt es auch andere Probleme bei Produktivservern.

Generell sollte gelten: Wenn eine Website / Applikation produktiv ist, sollte immer der Debug Schalter auf false gesetzt sein.

Den Debug Schalter kann man entweder in der web.config oder direkt als Page Direktive setzen.

web.config-Datei der Anwendung

<compilation debug=“false“ strict=“false“ explicit=“true“ targetFramework=“4.5.1″>

Page Direktive

<%@ Page Debug=“false“ Language=“VB“ AutoEventWireup=“false“ CodeFile=“default.aspx.vb“ MasterPageFile=“~/spaghetticms.master“ Inherits=“_Default“ %>

1) Wenn man debug = true verwendet, werden viel mehr Dateien im temporären ASP.NET Dateiordner erzeugt.

2) Wenn man debug = true verwendet, werden die Webseiten keinen Timeout erzeugen.

3) Wenn man debug = true verwendet, wird die Batch Kompilierung deaktiviert, auch wenn das Batch-Attribut <compilation> auf true gesetzt ist.

4) Das System.Diagnostics.DebuggableAttribute wird zum generierten Code hinzugefügt, welches zu einem massiven Leistungsabfall führen kann. Bei debug = true wird generell das Debuggable zum generierten Code hinzugefügt.

5) Alle Client-JavaScript-Bibliotheken und statischen Bildern, die über WebResources.axd eingesetzt werden, werden bei jedem Seitenaufruf heruntergeladen und nicht lokal im Browser zwischengespeichert. Dies kann sich die Geschwindigkeit auswirken, z.B. wenn Sie Atlas einsetzen oder Steuerelemente wie TreeView / Menü / Validatoren. Beachten Sie, dass der Grund, warum diese Mittel nicht im Cache gespeichert werden, debug = true ist. Bei debug= true wird der Browser Cache ständig geleert.

6) Wenn <compilation debug = „false“ /> gesetzt ist, wird demWebResource.axd Handler automatisch Cache-Regeln hinzugefügt, sodass die Ressource nur einmal vom Client heruntergeladen und dort im Cache gespeichert wird (es wird auch auf alle Proxyservern zwischengespeichert werden). Wenn Sie Atlas für Ihre Anwendung installiert haben, wird es auch automatisch den Inhalt von der WebResources.axd Handler komprimieren. Zusätzlich wird die Größe der JavaScript-Bibliotheken und statischen Ressourcen verkleinert.

7) Wenn das Attribut debug auf true gesetzt ist, werden die Symbolinformationsdateien (PDB-Daten) jedes Mal, wenn der Compiler die ASPX-Seiten kompiliert, neu erzeugt.

Wird während einer Unterbrechung der Debugger angefügt, können keine weiteren Anfragen an die Seite bearbeitet werden. Die Seite ist dann nicht mehr aufrufbar.

Bitte beachten Sie auch: http: //support.microsoft.com/kb/301058