Skip to content

Commit 25c8498

Browse files
author
Henrik Frystyk Nielsen
committed
Added dropbox sample
1 parent 6958689 commit 25c8498

12 files changed

+424
-0
lines changed

WebHooks.sln

+9
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StripeReceiver", "samples\S
136136
EndProject
137137
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomSender.WebJob", "samples\CustomSender.WebJob\CustomSender.WebJob.csproj", "{EB0ECE92-9BC6-45FD-89EC-DD25865E410C}"
138138
EndProject
139+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DropboxReceiver", "samples\DropboxReceiver\DropboxReceiver.csproj", "{ED305650-3D8D-455B-AABD-A3E85FBDB5DD}"
140+
EndProject
139141
Global
140142
GlobalSection(SolutionConfigurationPlatforms) = preSolution
141143
CodeAnalysis|Any CPU = CodeAnalysis|Any CPU
@@ -491,6 +493,12 @@ Global
491493
{EB0ECE92-9BC6-45FD-89EC-DD25865E410C}.Debug|Any CPU.Build.0 = Debug|Any CPU
492494
{EB0ECE92-9BC6-45FD-89EC-DD25865E410C}.Release|Any CPU.ActiveCfg = Release|Any CPU
493495
{EB0ECE92-9BC6-45FD-89EC-DD25865E410C}.Release|Any CPU.Build.0 = Release|Any CPU
496+
{ED305650-3D8D-455B-AABD-A3E85FBDB5DD}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU
497+
{ED305650-3D8D-455B-AABD-A3E85FBDB5DD}.CodeAnalysis|Any CPU.Build.0 = Release|Any CPU
498+
{ED305650-3D8D-455B-AABD-A3E85FBDB5DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
499+
{ED305650-3D8D-455B-AABD-A3E85FBDB5DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
500+
{ED305650-3D8D-455B-AABD-A3E85FBDB5DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
501+
{ED305650-3D8D-455B-AABD-A3E85FBDB5DD}.Release|Any CPU.Build.0 = Release|Any CPU
494502
EndGlobalSection
495503
GlobalSection(SolutionProperties) = preSolution
496504
HideSolutionNode = FALSE
@@ -554,6 +562,7 @@ Global
554562
{5F47AA81-8404-405B-BF7F-E5418CB89C5F} = {9575CB90-BC4B-43BB-8AEA-82C53FDA4187}
555563
{28DC67D9-2DB4-49B9-97A8-64057EB41026} = {E957C8D9-B4A0-488B-838F-BAB4DE080A76}
556564
{EB0ECE92-9BC6-45FD-89EC-DD25865E410C} = {E957C8D9-B4A0-488B-838F-BAB4DE080A76}
565+
{ED305650-3D8D-455B-AABD-A3E85FBDB5DD} = {E957C8D9-B4A0-488B-838F-BAB4DE080A76}
557566
EndGlobalSection
558567
GlobalSection(ExtensibilityGlobals) = postSolution
559568
EnterpriseLibraryConfigurationToolBinariesPathV6 = packages\EnterpriseLibrary.TransientFaultHandling.6.0.1304.0\lib\portable-net45+win+wp8;packages\EnterpriseLibrary.TransientFaultHandling.Data.6.0.1304.1\lib\NET45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System.Web.Http;
2+
3+
namespace DropboxReceiver
4+
{
5+
public static class WebApiConfig
6+
{
7+
public static void Register(HttpConfiguration config)
8+
{
9+
// Web API configuration and services
10+
11+
// Web API routes
12+
config.MapHttpAttributeRoutes();
13+
14+
config.Routes.MapHttpRoute(
15+
name: "DefaultApi",
16+
routeTemplate: "api/{controller}/{id}",
17+
defaults: new { id = RouteParameter.Optional }
18+
);
19+
20+
// Initialize Dropbox WebHook receiver
21+
config.InitializeReceiveDropboxWebHooks();
22+
}
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
4+
<Import Project="..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
5+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
6+
<PropertyGroup>
7+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
8+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
9+
<ProductVersion>
10+
</ProductVersion>
11+
<SchemaVersion>2.0</SchemaVersion>
12+
<ProjectGuid>{ED305650-3D8D-455B-AABD-A3E85FBDB5DD}</ProjectGuid>
13+
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
14+
<OutputType>Library</OutputType>
15+
<AppDesignerFolder>Properties</AppDesignerFolder>
16+
<RootNamespace>DropboxReceiver</RootNamespace>
17+
<AssemblyName>DropboxReceiver</AssemblyName>
18+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
19+
<UseIISExpress>true</UseIISExpress>
20+
<IISExpressSSLPort />
21+
<IISExpressAnonymousAuthentication />
22+
<IISExpressWindowsAuthentication />
23+
<IISExpressUseClassicPipelineMode />
24+
<UseGlobalApplicationHostFile />
25+
<NuGetPackageImportStamp>
26+
</NuGetPackageImportStamp>
27+
<TargetFrameworkProfile />
28+
</PropertyGroup>
29+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
30+
<DebugSymbols>true</DebugSymbols>
31+
<DebugType>full</DebugType>
32+
<Optimize>false</Optimize>
33+
<OutputPath>bin\</OutputPath>
34+
<DefineConstants>DEBUG;TRACE</DefineConstants>
35+
<ErrorReport>prompt</ErrorReport>
36+
<WarningLevel>4</WarningLevel>
37+
</PropertyGroup>
38+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
39+
<DebugType>pdbonly</DebugType>
40+
<Optimize>true</Optimize>
41+
<OutputPath>bin\</OutputPath>
42+
<DefineConstants>TRACE</DefineConstants>
43+
<ErrorReport>prompt</ErrorReport>
44+
<WarningLevel>4</WarningLevel>
45+
</PropertyGroup>
46+
<ItemGroup>
47+
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
48+
<HintPath>..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
49+
<Private>True</Private>
50+
</Reference>
51+
<Reference Include="Microsoft.CSharp" />
52+
<Reference Include="System.Data.DataSetExtensions" />
53+
<Reference Include="System.Net.Http" />
54+
<Reference Include="System.Net.Http.Formatting, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
55+
<HintPath>..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.2\lib\net45\System.Net.Http.Formatting.dll</HintPath>
56+
<Private>True</Private>
57+
</Reference>
58+
<Reference Include="System.Web.DynamicData" />
59+
<Reference Include="System.Web.Entity" />
60+
<Reference Include="System.Web.ApplicationServices" />
61+
<Reference Include="System.ComponentModel.DataAnnotations" />
62+
<Reference Include="System" />
63+
<Reference Include="System.Data" />
64+
<Reference Include="System.Web.Extensions" />
65+
<Reference Include="System.Web.Http, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
66+
<HintPath>..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.2\lib\net45\System.Web.Http.dll</HintPath>
67+
<Private>True</Private>
68+
</Reference>
69+
<Reference Include="System.Web.Http.WebHost, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
70+
<HintPath>..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.2\lib\net45\System.Web.Http.WebHost.dll</HintPath>
71+
<Private>True</Private>
72+
</Reference>
73+
<Reference Include="System.Drawing" />
74+
<Reference Include="System.Web" />
75+
<Reference Include="System.Xml" />
76+
<Reference Include="System.Configuration" />
77+
<Reference Include="System.Web.Services" />
78+
<Reference Include="System.EnterpriseServices" />
79+
<Reference Include="System.Xml.Linq" />
80+
</ItemGroup>
81+
<ItemGroup>
82+
<Reference Include="Newtonsoft.Json">
83+
<HintPath>..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
84+
</Reference>
85+
</ItemGroup>
86+
<ItemGroup>
87+
<Content Include="Global.asax" />
88+
<Content Include="index.html" />
89+
<Content Include="Web.config" />
90+
</ItemGroup>
91+
<ItemGroup>
92+
<Compile Include="App_Start\WebApiConfig.cs" />
93+
<Compile Include="Global.asax.cs">
94+
<DependentUpon>Global.asax</DependentUpon>
95+
</Compile>
96+
<Compile Include="Properties\AssemblyInfo.cs" />
97+
<Compile Include="WebHooks\DropboxWebHookHandler.cs" />
98+
</ItemGroup>
99+
<ItemGroup>
100+
<Content Include="packages.config" />
101+
<None Include="Web.Debug.config">
102+
<DependentUpon>Web.config</DependentUpon>
103+
</None>
104+
<None Include="Web.Release.config">
105+
<DependentUpon>Web.config</DependentUpon>
106+
</None>
107+
</ItemGroup>
108+
<ItemGroup />
109+
<ItemGroup>
110+
<ProjectReference Include="..\..\Src\Microsoft.AspNet.WebHooks.Common\Microsoft.AspNet.WebHooks.Common.csproj">
111+
<Project>{f7dd0935-6320-4efc-9464-d5a2d2b8c2f7}</Project>
112+
<Name>Microsoft.AspNet.WebHooks.Common</Name>
113+
</ProjectReference>
114+
<ProjectReference Include="..\..\Src\Microsoft.AspNet.WebHooks.Receivers.Dropbox\Microsoft.AspNet.WebHooks.Receivers.Dropbox.csproj">
115+
<Project>{f900cc81-49bf-40fc-8e0b-058b4a23bb34}</Project>
116+
<Name>Microsoft.AspNet.WebHooks.Receivers.Dropbox</Name>
117+
</ProjectReference>
118+
<ProjectReference Include="..\..\Src\Microsoft.AspNet.WebHooks.Receivers\Microsoft.AspNet.WebHooks.Receivers.csproj">
119+
<Project>{8ced31fb-32f2-4ffb-9997-452fb9728577}</Project>
120+
<Name>Microsoft.AspNet.WebHooks.Receivers</Name>
121+
</ProjectReference>
122+
</ItemGroup>
123+
<PropertyGroup>
124+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
125+
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
126+
</PropertyGroup>
127+
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
128+
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
129+
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
130+
<ProjectExtensions>
131+
<VisualStudio>
132+
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
133+
<WebProjectProperties>
134+
<UseIIS>True</UseIIS>
135+
<AutoAssignPort>True</AutoAssignPort>
136+
<DevelopmentServerPort>4333</DevelopmentServerPort>
137+
<DevelopmentServerVPath>/</DevelopmentServerVPath>
138+
<IISUrl>http://localhost:50008</IISUrl>
139+
<NTLMAuthentication>False</NTLMAuthentication>
140+
<UseCustomServer>False</UseCustomServer>
141+
<CustomServerUrl>
142+
</CustomServerUrl>
143+
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
144+
</WebProjectProperties>
145+
</FlavorProperties>
146+
</VisualStudio>
147+
</ProjectExtensions>
148+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
149+
<PropertyGroup>
150+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
151+
</PropertyGroup>
152+
<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
153+
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
154+
</Target>
155+
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
156+
Other similar extension points exist, see Microsoft.Common.targets.
157+
<Target Name="BeforeBuild">
158+
</Target>
159+
<Target Name="AfterBuild">
160+
</Target>
161+
-->
162+
</Project>

samples/DropboxReceiver/Global.asax

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<%@ Application Codebehind="Global.asax.cs" Inherits="DropboxReceiver.WebApiApplication" Language="C#" %>
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Web;
5+
using System.Web.Http;
6+
using System.Web.Routing;
7+
8+
namespace DropboxReceiver
9+
{
10+
public class WebApiApplication : System.Web.HttpApplication
11+
{
12+
protected void Application_Start()
13+
{
14+
GlobalConfiguration.Configure(WebApiConfig.Register);
15+
}
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
5+
// General Information about an assembly is controlled through the following
6+
// set of attributes. Change these attribute values to modify the information
7+
// associated with an assembly.
8+
[assembly: AssemblyTitle("DropboxReceiver")]
9+
[assembly: AssemblyDescription("")]
10+
[assembly: AssemblyConfiguration("")]
11+
[assembly: AssemblyCompany("")]
12+
[assembly: AssemblyProduct("DropboxReceiver")]
13+
[assembly: AssemblyCopyright("Copyright © 2015")]
14+
[assembly: AssemblyTrademark("")]
15+
[assembly: AssemblyCulture("")]
16+
17+
// Setting ComVisible to false makes the types in this assembly not visible
18+
// to COM components. If you need to access a type in this assembly from
19+
// COM, set the ComVisible attribute to true on that type.
20+
[assembly: ComVisible(false)]
21+
22+
// The following GUID is for the ID of the typelib if this project is exposed to COM
23+
[assembly: Guid("b81f55bb-d4be-42da-9a9e-27cfcfe1007c")]
24+
25+
// Version information for an assembly consists of the following four values:
26+
//
27+
// Major Version
28+
// Minor Version
29+
// Build Number
30+
// Revision
31+
//
32+
// You can specify all the values or you can default the Revision and Build Numbers
33+
// by using the '*' as shown below:
34+
[assembly: AssemblyVersion("1.0.0.0")]
35+
[assembly: AssemblyFileVersion("1.0.0.0")]
+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
3+
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
4+
5+
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
6+
<!--
7+
In the example below, the "SetAttributes" transform will change the value of
8+
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
9+
finds an attribute "name" that has a value of "MyDB".
10+
11+
<connectionStrings>
12+
<add name="MyDB"
13+
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
14+
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
15+
</connectionStrings>
16+
-->
17+
<system.web>
18+
<!--
19+
In the example below, the "Replace" transform will replace the entire
20+
<customErrors> section of your web.config file.
21+
Note that because there is only one customErrors section under the
22+
<system.web> node, there is no need to use the "xdt:Locator" attribute.
23+
24+
<customErrors defaultRedirect="GenericError.htm"
25+
mode="RemoteOnly" xdt:Transform="Replace">
26+
<error statusCode="500" redirect="InternalError.htm"/>
27+
</customErrors>
28+
-->
29+
</system.web>
30+
</configuration>
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
3+
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
4+
5+
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
6+
<!--
7+
In the example below, the "SetAttributes" transform will change the value of
8+
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
9+
finds an attribute "name" that has a value of "MyDB".
10+
11+
<connectionStrings>
12+
<add name="MyDB"
13+
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
14+
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
15+
</connectionStrings>
16+
-->
17+
<system.web>
18+
<compilation xdt:Transform="RemoveAttributes(debug)" />
19+
<!--
20+
In the example below, the "Replace" transform will replace the entire
21+
<customErrors> section of your web.config file.
22+
Note that because there is only one customErrors section under the
23+
<system.web> node, there is no need to use the "xdt:Locator" attribute.
24+
25+
<customErrors defaultRedirect="GenericError.htm"
26+
mode="RemoteOnly" xdt:Transform="Replace">
27+
<error statusCode="500" redirect="InternalError.htm"/>
28+
</customErrors>
29+
-->
30+
</system.web>
31+
</configuration>

samples/DropboxReceiver/Web.config

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
For more information on how to configure your ASP.NET application, please visit
4+
http://go.microsoft.com/fwlink/?LinkId=301879
5+
-->
6+
<configuration>
7+
<appSettings>
8+
<add key="MS_WebHookReceiverSecret_Dropbox" value="The Dropbox Application Secret"/>
9+
</appSettings>
10+
<!--
11+
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
12+
13+
The following attributes can be set on the <httpRuntime> tag.
14+
<system.Web>
15+
<httpRuntime targetFramework="4.5" />
16+
</system.Web>
17+
-->
18+
<system.web>
19+
<compilation debug="true" targetFramework="4.5"/>
20+
<httpRuntime targetFramework="4.5"/>
21+
</system.web>
22+
<runtime>
23+
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
24+
<dependentAssembly>
25+
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
26+
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
27+
</dependentAssembly>
28+
<dependentAssembly>
29+
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
30+
<bindingRedirect oldVersion="1.0.0.0-5.2.2.0" newVersion="5.2.2.0"/>
31+
</dependentAssembly>
32+
<dependentAssembly>
33+
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
34+
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
35+
</dependentAssembly>
36+
<dependentAssembly>
37+
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
38+
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0"/>
39+
</dependentAssembly>
40+
<dependentAssembly>
41+
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
42+
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0"/>
43+
</dependentAssembly>
44+
<dependentAssembly>
45+
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
46+
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
47+
</dependentAssembly>
48+
</assemblyBinding>
49+
</runtime>
50+
<system.webServer>
51+
<handlers>
52+
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
53+
<remove name="OPTIONSVerbHandler"/>
54+
<remove name="TRACEVerbHandler"/>
55+
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
56+
</handlers>
57+
</system.webServer>
58+
</configuration>

0 commit comments

Comments
 (0)