Bei dem Standardverhalten, wenn ein
WCF Service über den IIS veröffentlicht wird ist, dass der Endpunkt die Datei von Service ist mit der Dateiendung "
.svc". Dieses sieht aber - gerade im Bezug auf ein
REST-basiertes System nicht besonders elegant aus.
Bei dem Einsatz von
IIS 7.0 ist es sehr einfach die Dateiendung zu entfernen, ohne dabei viel Code zu schreiben. Für das
URL Rewriting gibt eine Erweiterung, die man dem IIS 7.0 hinzufügen kann. Dadurch ist es sehr schön möglich z.B. über Regular Expressions ein URL Rewriting durchzuführen.
Nach der Installation dieser
Erweiterung muss nur noch folgende Regel definiert werden:
1. Name:
Entfernen der Dateiendung svc2. Request URL:
Matches the pattern3. Using:
Regular Expressions4. Pattern:
^([0-9a-zA-Z\-]+)/([0-9a-zA-Z\-\.\/\(\)]+) 5. Ignore Cases:
true6. Action Type:
Rewrite7. Rewrite URL:
{R:1}.svc/{R:2}8. Append Querystring:
trueFertig ;-)
Per Eintrag in der web.config sieht das dann alternativ so aus:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<rewrite>
<rules>
<rule name="Remove Svc Extension">
<match url="^([0-9a-zA-Z\-]+)/([0-9a-zA-Z\-\.\/\(\)]+)" />
<action type="Rewrite" url="{R:1}.svc/{R:2}" />
</rule>
</rules>
</rewrite>
</system.webServer>