diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx index 1ebec213b4..23747d0d46 100644 --- a/data/resources/StringResources.resx +++ b/data/resources/StringResources.resx @@ -3785,6 +3785,9 @@ You can also choose to store the setting in the .user-file instead of the projec Debugger was unable to attach to process. + + There is no startup project to debug. + Code Covered diff --git a/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs b/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs index 83818dff69..b049338826 100644 --- a/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs +++ b/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs @@ -139,38 +139,36 @@ namespace ICSharpCode.SharpDevelop.Services InitializeService(); } - if (FileUtility.IsUrl(processStartInfo.FileName)) - { - if (ProjectService.CurrentProject == null) { - MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}"); + if (FileUtility.IsUrl(processStartInfo.FileName)) { + var project = ProjectService.OpenSolution.Preferences.StartupProject as CompilableProject; + + if (project == null) { + MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoStartupProject}"); return; } - var debugData = WebProjectsOptions.Instance.GetWebProjectOptions(ProjectService.CurrentProject.Name); + var debugData = WebProjectsOptions.Instance.GetWebProjectOptions(project.Name); if (debugData == null) { MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}"); return; } - var project = ProjectService.CurrentProject as CompilableProject; System.Diagnostics.Process localProcess = null; - if (project != null) { - // start browser - if (project.StartAction == StartAction.StartURL) - localProcess = System.Diagnostics.Process.Start(processStartInfo.FileName); - else - if (!string.IsNullOrEmpty(debugData.Data.ProjectUrl) && debugData.Data.WebServer == WebServer.IIS) - localProcess = System.Diagnostics.Process.Start(debugData.Data.ProjectUrl); - } + // start default application(e.g. browser) + if (project.StartAction == StartAction.StartURL) + localProcess = System.Diagnostics.Process.Start(processStartInfo.FileName); + else + if (!string.IsNullOrEmpty(debugData.Data.ProjectUrl) && debugData.Data.WebServer == WebServer.IIS) + localProcess = System.Diagnostics.Process.Start(debugData.Data.ProjectUrl); - // try debug IIS WP + // try attach to IIS WP var processes = System.Diagnostics.Process.GetProcesses(); string processName = WebProjectService.WorkerProcessName; if (debugData.Data.WebServer == WebServer.IISExpress) processName = "iisexpress"; foreach(var process in processes) { - if (process.ProcessName.ToLower().IndexOf(processName) > -1) { + if (process.ProcessName.ToLower().IndexOf(processName) == 0) { Attach(process); break; } diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs index 071bc4e3fb..7d4d0af151 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/DebugOptions.cs @@ -61,7 +61,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels if (isWebProject) { ElementHost host = new ElementHost(); host.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; - host.Height = 160; + host.Height = 150; host.Width = 550; host.Top = 240; host.Left = 8; diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml index eabce7e8e1..128c54e8d3 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml @@ -2,7 +2,7 @@ - diff --git a/src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs b/src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs index 54516431d9..c01374163f 100644 --- a/src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs +++ b/src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs @@ -119,8 +119,8 @@ namespace ICSharpCode.SharpDevelop.Project default: using (var manager = new Microsoft.Web.Administration.ServerManager()) { - string name = "/" + virtualDirectoryName; if (manager.Sites[DEFAULT_WEB_SITE] != null) { + string name = "/" + virtualDirectoryName; if (manager.Sites[DEFAULT_WEB_SITE].Applications[name] == null) { manager.Sites[DEFAULT_WEB_SITE].Applications.Add(name, physicalDirectoryPath); manager.CommitChanges();