@@ -16,31 +16,16 @@ namespace Microsoft.Azure.WebJobs.Script.WebHost
1616{
1717 public static class WebApiConfig
1818 {
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 )
2821 {
2922 if ( config == null )
3023 {
3124 throw new ArgumentNullException ( "config" ) ;
3225 }
33- if ( settings == null )
34- {
35- throw new ArgumentNullException ( "settings" ) ;
36- }
37-
38- if ( settingsManager == null )
39- {
40- throw new ArgumentNullException ( "settingsManager" ) ;
41- }
4226
43- _settingsManager = settingsManager ;
27+ settingsManager = settingsManager ?? ScriptSettingsManager . Instance ;
28+ settings = settings ?? GetDefaultSettings ( settingsManager ) ;
4429
4530 // Delete hostingstart.html if any. Azure creates that in all sites by default
4631 string hostingStart = Path . Combine ( settings . ScriptPath , "hostingstart.html" ) ;
@@ -50,11 +35,11 @@ public static void Register(HttpConfiguration config, ScriptSettingsManager sett
5035 }
5136
5237 // Add necessary folders to the %PATH%
53- PrependFoldersToEnvironmentPath ( ) ;
38+ PrependFoldersToEnvironmentPath ( settingsManager ) ;
5439
5540 var builder = new ContainerBuilder ( ) ;
5641 builder . RegisterApiControllers ( typeof ( FunctionsController ) . Assembly ) ;
57- AutofacBootstrap . Initialize ( _settingsManager , builder , settings ) ;
42+ AutofacBootstrap . Initialize ( settingsManager , builder , settings ) ;
5843
5944 // Invoke registration callback
6045 dependencyCallback ? . Invoke ( builder , settings ) ;
@@ -96,10 +81,10 @@ public static void Register(HttpConfiguration config, ScriptSettingsManager sett
9681 config . InitializeReceiveSalesforceWebHooks ( ) ;
9782 }
9883
99- private static void PrependFoldersToEnvironmentPath ( )
84+ private static void PrependFoldersToEnvironmentPath ( ScriptSettingsManager settingsManager )
10085 {
10186 // Only do this when %HOME% is defined (normally on Azure)
102- string home = _settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebsiteHomePath ) ;
87+ string home = settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebsiteHomePath ) ;
10388 if ( ! string . IsNullOrEmpty ( home ) )
10489 {
10590 // Create the tools folder if it doesn't exist
@@ -109,28 +94,28 @@ private static void PrependFoldersToEnvironmentPath()
10994 var folders = new List < string > ( ) ;
11095 folders . Add ( Path . Combine ( home , @"site\tools" ) ) ;
11196
112- string path = _settingsManager . GetSetting ( "PATH" ) ;
97+ string path = Environment . GetEnvironmentVariable ( "PATH" ) ;
11398 string additionalPaths = String . Join ( ";" , folders ) ;
11499
115100 // Make sure we haven't already added them. This can happen if the appdomain restart (since it's still same process)
116101 if ( ! path . Contains ( additionalPaths ) )
117102 {
118103 path = additionalPaths + ";" + path ;
119104
120- _settingsManager . SetSetting ( "PATH" , path ) ;
105+ Environment . SetEnvironmentVariable ( "PATH" , path ) ;
121106 }
122107 }
123108 }
124109
125- private static WebHostSettings GetDefaultSettings ( )
110+ private static WebHostSettings GetDefaultSettings ( ScriptSettingsManager settingsManager )
126111 {
127112 WebHostSettings settings = new WebHostSettings ( ) ;
128113
129- string home = _settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebsiteHomePath ) ;
114+ string home = settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebsiteHomePath ) ;
130115 bool isLocal = string . IsNullOrEmpty ( home ) ;
131116 if ( isLocal )
132117 {
133- settings . ScriptPath = _settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebJobsScriptRoot ) ;
118+ settings . ScriptPath = settingsManager . GetSetting ( EnvironmentSettingNames . AzureWebJobsScriptRoot ) ;
134119 settings . LogPath = Path . Combine ( Path . GetTempPath ( ) , @"Functions" ) ;
135120 settings . SecretsPath = HttpContext . Current . Server . MapPath ( "~/App_Data/Secrets" ) ;
136121 }
0 commit comments