Browse Source

Fix NullReferenceException when starting ASP.NET website - http://community.sharpdevelop.net/forums/t/12694.aspx

pull/15/head
Eusebiu Marcu 15 years ago
parent
commit
f4beb9bcf1
  1. 29
      src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs

29
src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs

@ -141,12 +141,13 @@ namespace ICSharpCode.SharpDevelop.Services
} }
if (FileUtility.IsUrl(processStartInfo.FileName)) { if (FileUtility.IsUrl(processStartInfo.FileName)) {
var project = ProjectService.OpenSolution.Preferences.StartupProject as CompilableProject; if (!CheckWebProjectStartInfo())
var options = WebProjectsOptions.Instance.GetWebProjectOptions(project.Name);
if (!CheckWebProjectStartInfo(project, options))
return; return;
var project = ProjectService.OpenSolution.Preferences.StartupProject as CompilableProject;
var options = WebProjectsOptions.Instance.GetWebProjectOptions(project.Name);
System.Diagnostics.Process defaultAppProcess = null; System.Diagnostics.Process defaultAppProcess = null;
if (options.Data.WebServer != WebServer.None) { if (options.Data.WebServer != WebServer.None) {
string processName = WebProjectService.WorkerProcessName; string processName = WebProjectService.WorkerProcessName;
@ -293,10 +294,11 @@ namespace ICSharpCode.SharpDevelop.Services
public void StartWithoutDebugging(ProcessStartInfo processStartInfo) public void StartWithoutDebugging(ProcessStartInfo processStartInfo)
{ {
if (FileUtility.IsUrl(processStartInfo.FileName)) { if (FileUtility.IsUrl(processStartInfo.FileName)) {
if (!CheckWebProjectStartInfo())
return;
var project = ProjectService.OpenSolution.Preferences.StartupProject as CompilableProject; var project = ProjectService.OpenSolution.Preferences.StartupProject as CompilableProject;
var options = WebProjectsOptions.Instance.GetWebProjectOptions(project.Name); var options = WebProjectsOptions.Instance.GetWebProjectOptions(project.Name);
if (!CheckWebProjectStartInfo(project, options))
return;
if (options.Data.WebServer != WebServer.None) { if (options.Data.WebServer != WebServer.None) {
string processName = WebProjectService.WorkerProcessName; string processName = WebProjectService.WorkerProcessName;
@ -359,14 +361,25 @@ namespace ICSharpCode.SharpDevelop.Services
} }
} }
bool CheckWebProjectStartInfo(CompilableProject project, WebProjectOptions options) bool CheckWebProjectStartInfo()
{ {
// check if we have startup project
var project = ProjectService.OpenSolution.Preferences.StartupProject as CompilableProject;
if (project == null) { if (project == null) {
MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoStartupProject}"); MessageService.ShowError("${res:ICSharpCode.NoStartupProject}");
return false; return false;
} }
if (options == null || options.Data == null) { // check if we have options
if (WebProjectsOptions.Instance == null) {
MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}");
return false;
}
// check the options
var options = WebProjectsOptions.Instance.GetWebProjectOptions(project.Name);
if (options == null || options.Data == null || string.IsNullOrEmpty(options.ProjectName) ||
options.Data.WebServer == WebServer.None) {
MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}"); MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}");
return false; return false;
} }

Loading…
Cancel
Save