@@ -16,31 +16,16 @@ namespace Microsoft.Azure.WebJobs.Script.WebHost
16
16
{
17
17
public static class WebApiConfig
18
18
{
19
- private static ScriptSettingsManager _settingsManager ;
20
-
21
- public static void Register ( HttpConfiguration config )
22
- {
23
- _settingsManager = ScriptSettingsManager . Instance ;
24
- Register ( config , _settingsManager , GetDefaultSettings ( ) ) ;
25
- }
26
-
27
- public static void Register ( HttpConfiguration config , ScriptSettingsManager settingsManager , WebHostSettings settings = null , Action < ContainerBuilder , WebHostSettings > dependencyCallback = null )
19
+ public static void Register ( HttpConfiguration config , ScriptSettingsManager settingsManager = null ,
20
+ WebHostSettings settings = null , Action < ContainerBuilder , WebHostSettings > dependencyCallback = null )
28
21
{
29
22
if ( config == null )
30
23
{
31
24
throw new ArgumentNullException ( "config" ) ;
32
25
}
33
- if ( settings == null )
34
- {
35
- throw new ArgumentNullException ( "settings" ) ;
36
- }
37
-
38
- if ( settingsManager == null )
39
- {
40
- throw new ArgumentNullException ( "settingsManager" ) ;
41
- }
42
26
43
- _settingsManager = settingsManager ;
27
+ settingsManager = settingsManager ?? ScriptSettingsManager . Instance ;
28
+ settings = settings ?? GetDefaultSettings ( settingsManager ) ;
44
29
45
30
// Delete hostingstart.html if any. Azure creates that in all sites by default
46
31
string hostingStart = Path . Combine ( settings . ScriptPath , "hostingstart.html" ) ;
@@ -50,11 +35,11 @@ public static void Register(HttpConfiguration config, ScriptSettingsManager sett
50
35
}
51
36
52
37
// Add necessary folders to the %PATH%
53
- PrependFoldersToEnvironmentPath ( ) ;
38
+ PrependFoldersToEnvironmentPath ( settingsManager ) ;
54
39
55
40
var builder = new ContainerBuilder ( ) ;
56
41
builder . RegisterApiControllers ( typeof ( FunctionsController ) . Assembly ) ;
57
- AutofacBootstrap . Initialize ( _settingsManager , builder , settings ) ;
42
+ AutofacBootstrap . Initialize ( settingsManager , builder , settings ) ;
58
43
59
44
// Invoke registration callback
60
45
dependencyCallback ? . Invoke ( builder , settings ) ;
@@ -96,10 +81,10 @@ public static void Register(HttpConfiguration config, ScriptSettingsManager sett
96
81
config . InitializeReceiveSalesforceWebHooks ( ) ;
97
82
}
98
83
99
- private static void PrependFoldersToEnvironmentPath ( )
84
+ private static void PrependFoldersToEnvironmentPath ( ScriptSettingsManager settingsManager )
100
85
{
101
86
// Only do this when %HOME% is defined (normally on Azure)
102
- string home = _settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebsiteHomePath ) ;
87
+ string home = settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebsiteHomePath ) ;
103
88
if ( ! string . IsNullOrEmpty ( home ) )
104
89
{
105
90
// Create the tools folder if it doesn't exist
@@ -109,28 +94,28 @@ private static void PrependFoldersToEnvironmentPath()
109
94
var folders = new List < string > ( ) ;
110
95
folders . Add ( Path . Combine ( home , @"site\tools" ) ) ;
111
96
112
- string path = _settingsManager . GetSetting ( "PATH" ) ;
97
+ string path = Environment . GetEnvironmentVariable ( "PATH" ) ;
113
98
string additionalPaths = String . Join ( ";" , folders ) ;
114
99
115
100
// Make sure we haven't already added them. This can happen if the appdomain restart (since it's still same process)
116
101
if ( ! path . Contains ( additionalPaths ) )
117
102
{
118
103
path = additionalPaths + ";" + path ;
119
104
120
- _settingsManager . SetSetting ( "PATH" , path ) ;
105
+ Environment . SetEnvironmentVariable ( "PATH" , path ) ;
121
106
}
122
107
}
123
108
}
124
109
125
- private static WebHostSettings GetDefaultSettings ( )
110
+ private static WebHostSettings GetDefaultSettings ( ScriptSettingsManager settingsManager )
126
111
{
127
112
WebHostSettings settings = new WebHostSettings ( ) ;
128
113
129
- string home = _settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebsiteHomePath ) ;
114
+ string home = settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebsiteHomePath ) ;
130
115
bool isLocal = string . IsNullOrEmpty ( home ) ;
131
116
if ( isLocal )
132
117
{
133
- settings . ScriptPath = _settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebJobsScriptRoot ) ;
118
+ settings . ScriptPath = settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebJobsScriptRoot ) ;
134
119
settings . LogPath = Path . Combine ( Path . GetTempPath ( ) , @"Functions" ) ;
135
120
settings . SecretsPath = HttpContext . Current . Server . MapPath ( "~/App_Data/Secrets" ) ;
136
121
}
0 commit comments